Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript更改内容后激活onchange_Javascript_Jquery - Fatal编程技术网

使用javascript更改内容后激活onchange

使用javascript更改内容后激活onchange,javascript,jquery,Javascript,Jquery,当javascript更改输入的值时,为什么不激活输入的onChange函数?例如,为什么单击按钮时不会出现警报 <html> <body> <input type="text" id="myInput" onchange="alert(1)" /> <button onclick = "document.getElementById('myInput').value = 'ads'">click</button> </body&

当javascript更改输入的值时,为什么不激活输入的onChange函数?例如,为什么单击按钮时不会出现警报

<html>
<body>
<input type="text" id="myInput" onchange="alert(1)" />
<button onclick = "document.getElementById('myInput').value = 'ads'">click</button>
</body>    
</html>
那么我怎样才能使onchange函数工作呢

编辑:
我现在了解到事件不会自动触发,我如何也调用itjquery?

脚本值更改不会触发事件。您必须手动触发事件

jQuery:$'myInput'。触发'change'

将以下代码添加到onchange事件:

因此,结合您的代码,您实际上应该将JS代码与HTML分开:

<button onclick="var input = document.getElementById('myInput');input.value = 'ads';if(input.fireEvent)input.fireEvent('onchange');else{var ev=document.createEvent('HTMLEvents');ev.initEvent('change',true,false);input.dispatchEvent(ev);}">click</button>

脚本化的值更改不会触发事件。您必须手动触发事件

jQuery:$'myInput'。触发'change'

将以下代码添加到onchange事件:

因此,结合您的代码,您实际上应该将JS代码与HTML分开:

<button onclick="var input = document.getElementById('myInput');input.value = 'ads';if(input.fireEvent)input.fireEvent('onchange');else{var ev=document.createEvent('HTMLEvents');ev.initEvent('change',true,false);input.dispatchEvent(ev);}">click</button>
以编程方式更改值时不会触发更改事件。。。就是这样。当以编程方式更改值时,不会触发更改事件。。。事情就是这样。