2015-08-13 59 views
1

我有一個HTML選擇下拉菜單,其值可以通過編程方式進行編輯。當用戶編輯頁面中的值時,我的更改事件觸發,但當代碼中的值發生更改時觸發。我需要在兩種情況下都會發起事件。任何想法如何實現這一目標?更改事件沒有針對程序化更改觸發

$("#dropdownId").on('change', function() { 
    //do stuff 
}); 
... 
var df = document.frmMain; 
df.dropdownId.value = someValue; //change event does not fire 
+1

您是否嘗試過將更改函數封裝到實際函數中?這樣,您可以在修改下拉列表時手動調用它。 – johnnyRose

回答

3

您可以使用jQuery的.trigger來觸發事件。你的情況:

$("#dropdownId").trigger("change"); 
2

您需要settig值後使用jQuery觸發功能,手動觸發事件:

$("#dropdownId").trigger('change'); 
+1

只需注意代碼意外執行偵聽器/觸發器遞歸循環的風險。 (這實際上是爲什麼默認情況下,它不會觸發) – Katana314

+0

這應該發生在發射單個觸發器@ Katana314時真的發生了嗎? – KAD

0

使用jQuery設置選擇和消防更改事件。

$('#'+df.dropdownId).val(someValue).change();