2013-04-27 85 views

回答

13

您使用jQuery的,對不對?將HTML與JavaScript分開。可以使用triggertriggerHandler

var $myInput = $('#changeProgramatic').on('change', ChangeValue); 

var anotherFunction = function() { 
    $myInput.val('Another value'); 
    $myInput.trigger('change'); 
}; 
+0

如何使用jQuery選擇器獲取此事件? – 2013-04-27 10:07:53

+0

我在問這個 '$(document).bind('mycustomevent',function(e,arg1,arg2,arg3){/ * ... * /});' – 2013-04-27 10:11:28

1

呼叫編程方式改變之後的文字處理程序本身應該工作:

var input = document.getElementById("changeProgramatic"); 
input.value = 'New Value'; 
input.onchange(); 
+0

對我來說,這只是射擊輸入模糊 – 2014-09-27 20:49:15

+1

這樣的作品,但如何通過事件屬性 - >(e)? – KhaledMohamedP 2015-11-22 09:24:01

+4

只有當你設置'onchange'函數(在JS或HTML中)時纔有效。不會觸發哪些可以被接收用'addEventListener()'。 – Nux 2016-03-18 12:22:25

-2

你找出解決辦法,也許這將幫助:

在您的文本框,我需要使用jQuery的綁定功能。所以當你觸發時,它會起作用。 我有類似的問題,我直接綁定事件,之後,我觸發該事件,bups,它不會工作。所以我改變使用綁定(「命名事件」,函數(){}綁定方法..它的工作就像我想

29

香草JS的解決方案:

var el = document.getElementById('changeProgramatic'); 
el.value='New Value' 
el.dispatchEvent(new Event('change')); 

注意dispatchEvent沒有按」 t工作在舊的IE瀏覽器(見:caniuse)。所以你應該只使用它在內部網站(而不是在網站上有廣泛的受衆)

+0

是啊!解決方案。 – lxg 2017-05-12 10:44:07