Heim > Artikel > Web-Frontend > jquery: Lösung für das Problem, dass das Änderungsereignis nicht ausgelöst wird
jqueryÄnderungEreignisProblem nicht ausgelöst
Definieren Sie zunächst 2 Eingänge. Der Zweck besteht darin, den Wert von Eingang1 in Eingang2 zu kopieren
<input name="input1" /> <input name="input2" />
Der Code lautet wie folgt
$(":input[name='input1']").bind('change focus blur', function() { $(":input[name='input2']").val($(this).val()); });
Die Änderung von jquery wird nicht ausgelöst,
Das liegt nicht daran, dass der Code falsch ist, sondern daran, dass Eingabe1 direkt von jquery zugewiesen wird,
$(":input[name='input1']").val('AAAAAA');
Dadurch wird es nicht ausgelöst.
Die vorübergehende Lösung ist:
$(":input[name='input1']").focus(); $(":input[name='input1']").val('AAAAAA'); $(":input[name='input1']").blur();
================= ======= =================
Bitte fragen Sie nach einem besseren Weg!!!!! .
===================================== ==== ========
Angehängt ist der vollständige Code... Das Problem wurde noch nicht gelöst
$(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" /> 赋值测试
===== = ===========================================
Es wurde getestet und es gibt kein Problem
$(function(){ $(":input[name='bbb']").val('aAAAAAAAA'); $(":input[name='aaa']").bind("change focus blur",function(){ alert($(this).val()); $(":input[name='bbb']").val($(this).val()); }); })
Bitte sehen Sie sich den vollständigen Code im Anhang der Frage an. Sie können den Wert in diesem Test nicht kopieren
Der Wert von Eingabe1 ist die direkte Zuweisung von jquery. Gemäß Ihrer Logik sind die beiden Werte gleich. Weisen Sie dann Eingabe2 gleichzeitig einen Wert zu.
Dies ist ein vereinfachter Code . Im eigentlichen Projekt kann das erste Modul nicht geändert werden, daher kann es nur durch Überwachung gelöst werden
Sie sagten, Sie können das erste Modul nicht ändern, also was ist mit Ihrem Code los
$(":input[name='input1']").focus(); $(":input[name='input1']").val('AAAAAA');//这一段相当于你说的第一个模块,既然你能上下加上两行代码,那为何不直接 $(":input[name='input2']").val('AAAAAA'); $(":input[name='input1']").blur();
Können Sie sich über dieses Problem keine Sorgen machen?
Dies ist eine vorübergehende Lösung und muss geändert werden.
Wer sollte das sonst tun? Wissen Sie, wie man Werte direkt zuweist?
$("input").first().keyup(function(){ $(this).next().val($(this).val()); });
Das Ereignis kann überhaupt nicht erfasst werden, da die Tastatur überhaupt nicht auf Eingabe1 gedrückt wird und der Wert in
Eingabe1 über Ajax geladen wird. und jetzt möchte ich es über Ereignisse nach Input2 kopieren, anstatt
einfach im Ajax-Code zu ändern
$("input").first().change(function(){ $(this).next().val($(this).val());}); // ajax改值 $("input").first().change()
Das obige ist der detaillierte Inhalt vonjquery: Lösung für das Problem, dass das Änderungsereignis nicht ausgelöst wird. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!