2013-11-05 20 views
0

我有一個輸入和我通過jQuery代碼改變輸入的值:如何理解文本框的值改變了?

$('#areaMin').attr('value',ui.values[0]); 

,我想明白了當值與此jQuery代碼改爲:

$('.filterPanel input').change(function(){ 
    console.log('tada'); 
}); 

當我手工填寫該文本框並按下輸入它的作品,但當它自動填充它不起作用,我該怎麼辦?

+0

如果你要編程改變這個值爲什麼你不明確地觸發這個變化事件? – Nilesh

+0

你在找'keyup'嗎? http://jsfiddle.net/2MvEH/ –

回答

1

當值是使用腳本改變,改變事件將不會被觸發。你需要手動完成。

$('#areaMin').val(ui.values[0]).change(); 

注意:您需要使用.val()設定值不.attr()

+0

應該是'$('#areaMin').val(ui.values [0])。trigger('change');'? – rab

+0

@rab都是相同的'.change()'在內部調用'.trigger()' –

0
$('#areaMin').val('test'); 

$('.filterPanel input').keyup(function(){ 
    console.log('tada'); 
}); 
+0

謝謝,但它不適用於我。 – beautifulmind

0

使用SetInterval

setInterval(function() { ObserveInputValue($('.filterPanel input').val()); }, 100); 

OnChange它涵蓋了所有的變化

$(".filterPanel input").on("change keyup paste click", function(){ 
    console.log('tada'); 
}) 
+1

謝謝you.onChange不適用於我,請問我如何使用setInterval? – beautifulmind

+0

當我使用onChange我應該點擊文本框然後它的作品。 – beautifulmind

+0

@beautifulmind - 不知道「ObserveInputValue」應該是什麼 - 找不到記錄。但是您可以將參考變量設置爲doc-load上的現有值,然後使用interval來檢查您的字段是否有變化;然後當它改變時,做任何事情,並將你的ref-var重置爲val()返回的當前值。 – JosephK