Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.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
如果从其他方法更改了select选项,则不会触发JavaScript onchange事件_Javascript_Html_Onchange - Fatal编程技术网

如果从其他方法更改了select选项,则不会触发JavaScript onchange事件

如果从其他方法更改了select选项,则不会触发JavaScript onchange事件,javascript,html,onchange,Javascript,Html,Onchange,我有一个选择元素和一个按钮 更改“选择”元素中的选项时,它会调用某些功能: <select id="mySel" onchange="someFunction();"> <option value="1">Option 1</option> <option value="2">Option 2</option> ... </select> <input type="button" value=

我有一个选择元素和一个按钮

更改“选择”元素中的选项时,它会调用某些功能:

<select id="mySel" onchange="someFunction();">
    <option value="1">Option 1</option>
    <option value="2">Option 2</option>
    ...
</select>

<input type="button" value="Click" onclick="document.getElementById('mySel').selectedIndex = 0;"/>
someFunction仅在我从select元素本身更改选项时才会被调用,而不是在我单击按钮时

我试图做的是让select元素onchange事件触发,而不管选项从何处更改

我知道我可以在button onclick事件中添加一些函数,但这不是我想要的


如有任何意见,将不胜感激

更改按钮html

<input type="button" value="Click" onclick="document.getElementById('mySel').selectedIndex = 0;someFunction();"/>

或者根据评论中提到的链接手动触发更改事件。

使用此选项,您将得到您想要的

函数someFunctionselect{ 控制台。日志“到达此处”; } 选择1 选择2 ...
可以在加载DOM时添加一个事件侦听器,这样每次以编程方式启动事件回调时都会得到事件回调,并且在相应的元素标记中没有事件调用,从而为您带来更清晰的代码

运行此示例,希望对您有所帮助:

//等待窗口加载 window.onload=函数{ //-将onchange事件侦听器绑定到DOMNode //-你的someFunction在这里启动了! getElementById'mySel'。addEventListener'change',someFunction; //从“你的按钮”点击回调触发更改 document.getElementById'your_button'。addEventListenerclick,函数{ //创建新的“更改”事件 var事件=新事件“变更”; //发送它 document.getElementById'mySel'.dispatchEventevent; }; } //您的功能-查看控制台 函数{ console.log'here!'; } 选择1 选择2
那不是我想要的。。。我想知道用户是否可以在不设置与select元素本身不同的选项的情况下触发onchange事件。以编程方式更改selectedIndex的值不会导致触发onchange事件。这在Windows应用程序中发生,但在html/javascript中,您必须手动触发此事件。。。我不想让按钮调用函数。