jquery change事件不觸發的問題
先定義2個input,目的是把input1的值複製到input2
<input name="input1" /> <input name="input2" />
程式碼如下
$(":input[name='input1']").bind('change focus blur', function() { $(":input[name='input2']").val($(this).val()); });
jquery 的change不觸發,
不是因為程式碼不對,是因為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 直接賦值,根據你的邏輯,兩個的值是一樣的,那麼就在賦值的同時給input2也賦值就行了
這是程式碼簡化了,實際專案中因為不能去改動第一個模組,所以只能透過監聽來解決
你說你不能改動第一個模組,那你這個程式碼算怎麼回事啊
$(":input[name='input1']").focus(); $(":input[name='input1']").val('AAAAAA');//这一段相当于你说的第一个模块,既然你能上下加上两行代码,那为何不直接 $(":input[name='input2']").val('AAAAAA'); $(":input[name='input1']").blur();
能不糾結這個問題麼?
這個是臨時解決方案,臨時的,要改回去的,
不然我來問這個問題幹嘛!!! 直接賦值誰不會
$("input").first().keyup(function(){ $(this).next().val($(this).val()); });
根本就捕獲不到事件,因為根本不會在input1上按鍵盤,
input1裡的值,是透過ajax載入的,現在想透過事件複製到input2,而不是在ajax程式碼裡
只需change
$("input").first().change(function(){ $(this).next().val($(this).val());}); // ajax改值 $("input").first().change()
以上是jquery:change事件不觸發問題的解決辦法的詳細內容。更多資訊請關注PHP中文網其他相關文章!