2013-04-27 86 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