2014-03-06 12 views
0
$('#changeRows').on('change', function(){ 
    var changedValue = $('#changeRows').val(); 
    alert("This is my value: "+changedValue); 
    //do my stuff 
} 

setTimeout(function() { 
    $('#changeRows').val("<?=$contentData['rows'];?>"); 
}, 1500); 

我該如何獲得這個像預期的一樣工作?值被改變,但是更改不被稱爲...<Select>變更通過.val()不會與價值變化一起工作

+1

因爲僅當USER更改值時纔會觸發onchange。 – epascarello

回答

1

當通過GUI更改值時觸發更改事件,而不通過代碼。雖然你可以使用.trigger("change")change()

Live Demo

setTimeout(function() { 
    $('#changeRows').val("<?=$contentData['rows'];?>").change(); 
}, 1500); 
1

更改事件觸發的更改事件將會被解僱只有當用戶操作導致的變化

您需要在情況下,手動觸發它編程的變化,你可以用.change().trigger('change')

setTimeout(function() { 
    $('#changeRows').val("<?=$contentData['rows'];?>").change(); 
}, 1500); 
+0

ouh我很愚蠢......我知道.change(),但現在不需要使用它直到現在......非常感謝你。 –

1

您可以使用jQuery的身體嘗試改變: - 。

$( '體', '#changeRows')上( '變',函數(E){

});

或者你可以選擇以下jQuery的生活變化,如果在DOM的元素被動態地進行:

$( 'changeRows。 ')生活(' 變',函數(){

。 });

+0

另外:我以爲不應該再使用.live()。它已被棄用......或者我錯了嗎?但是,謝謝。 –

+0

據我所知,我認爲jQuery的活動查詢仍然沒有推翻... –