首頁 > web前端 > js教程 > 主體

jquery:change事件不觸發問題的解決辦法

黄舟
發布: 2018-05-18 15:47:34
原創
10074 人瀏覽過

jquery change事件不觸發的問題
先定義2個input,目的是把input1的值複製到input2

<input name="input1" />
<input name="input2" />
登入後複製

程式碼如下

$(":input[name=&#39;input1&#39;]").bind(&#39;change focus blur&#39;, function() {
$(":input[name=&#39;input2&#39;]").val($(this).val());
});
登入後複製

jquery 的change不觸發,
不是因為程式碼不對,是因為input1是jquery直接賦值的,

$(":input[name=&#39;input1&#39;]").val(&#39;AAAAAA&#39;);
登入後複製

這樣就觸發不了,
暫時的解決方法是,

$(":input[name='input1']").focus();
$(":input[name=&#39;input1&#39;]").val(&#39;AAAAAA&#39;);
$(":input[name='input1']").blur();
登入後複製

=============================== ===========
求更好方法!!!!!或怎麼解決.................

= ====================================================

附上完整程式碼.........暫時都沒有解決問題

$(function() {
$(":input[name=&#39;input1&#39;]").bind(&#39;change focus blur&#39;, function() {
$(":input[name=&#39;input2&#39;]").val($(this).val());
});
});
var setvalue = function() {
$(":input[name=&#39;input1&#39;]").val(&#39;AAAAAA&#39;);
}
<input name="input1" />
<input name="input2" />
赋值测试
登入後複製

================ ====================================

已測試沒有問題

$(function(){
 
 $(":input[name=&#39;bbb&#39;]").val(&#39;aAAAAAAAA&#39;);
 
 $(":input[name=&#39;aaa&#39;]").bind("change focus blur",function(){
 
  alert($(this).val());
 
  $(":input[name=&#39;bbb&#39;]").val($(this).val());
 
 });
 
})
登入後複製

請看問題的補充中的完整代碼,你這個測試也複製不了值

input1 的值是jquery 直接賦值,根據你的邏輯,兩個的值是一樣的,那麼就在賦值的同時給input2也賦值就行了

這是程式碼簡化了,實際專案中因為不能去改動第一個模組,所以只能透過監聽來解決

你說你不能改動第一個模組,那你這個程式碼算怎麼回事啊

$(":input[name='input1']").focus();
$(":input[name=&#39;input1&#39;]").val(&#39;AAAAAA&#39;);//这一段相当于你说的第一个模块,既然你能上下加上两行代码,那为何不直接
$(":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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板