ホームページ >ウェブフロントエンド >jsチュートリアル >jquery:changeイベントがトリガーされない問題の解決策
jquerychangeeventはトリガーされません
最初に2つの入力を定義し、目的はinput1の値をinput2にコピーすることです
<input name="input1" /> <input name="input2" />
コードは次のとおりです
$(":input[name='input1']").bind('change focus blur', function() { $(":input[name='input2']").val($(this).val()); });
jqueryの変更はトリガーされません
コードが間違っています。input1 が jquery によって直接割り当てられているためです。
$(":input[name='input1']").val('AAAAAA');
この方法ではトリガーできません。
一時的な解決策は、
$(":input[name='input1']").focus(); $(":input[name='input1']").val('AAAAAA'); $(":input[name='input1']").blur();
=============== ======= =====================
もっと良い方法を聞いてください!!!!!またはそれを解決する方法.... .
======================================== ==== ====
完全なコードを添付します......今のところ問題は解決していません
$(function() { $(":input[name='input1']").bind('change focus blur', function() { $(":input[name='input2']").val($(this).val()); }); }); var setvalue = function() { $(":input[name='input1']").val('AAAAAA'); } <input name="input1" /> <input name="input2" /> 赋值测试
============ ========== ==============================
問題なくテストされました
$(function(){ $(":input[name='bbb']").val('aAAAAAAAA'); $(":input[name='aaa']").bind("change focus blur",function(){ alert($(this).val()); $(":input[name='bbb']").val($(this).val()); }); })
質問の補足にある完全なコードを参照してください。テストでも値をコピーできません
あなたのロジックによれば、input1の値はjqueryによって直接割り当てられているため、2つの値は同じです。同時にinput2に値を割り当てるだけです
これは実際のプロジェクトの簡略化されたコードです。最初のモジュールは変更できないため、監視を通じてのみ解決できます
最初のモジュールは変更できないと言いましたが、その後あなたのコードで何が起こっていますか
$(":input[name='input1']").focus(); $(":input[name='input1']").val('AAAAAA');//这一段相当于你说的第一个模块,既然你能上下加上两行代码,那为何不直接 $(":input[name='input2']").val('AAAAAA'); $(":input[name='input1']").blur();
この問題について心配する必要はありませんか?
これは一時的な解決策であり、元に戻す必要があります
他にこんな質問をする人はいないでしょう。値を直接割り当てる方法がわかりませんか?
input1 にまったく存在しないため、イベントをまったくキャプチャできません。
input1 の値が ajax を通じてロードされます。 Ajax コードではなくイベントを通じて input2 に変更します
変更するだけです
$("input").first().keyup(function(){ $(this).next().val($(this).val()); });
以上がjquery:changeイベントがトリガーされない問題の解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。