温馨提示:本文翻译自stackoverflow.com,查看原文请点击:javascript - onChange function not getting invoked for dropdown menu
html javascript jquery onchange onclick

javascript - 下拉菜单未调用onChange函数

发布于 2020-03-27 10:25:58

我有一个按钮,单击该按钮会将下拉菜单重置为其默认选项。

我有一个下拉菜单的onchange事件监听器。单击按钮时未触发事件侦听器。

HTML代码

<select id="my_select">
    <option value="a">a</option>
    <option value="b">b</option>
    <option value="c">c</option>
</select>
<div id="reset">reset</div>
$("#reset").on("click", function () {
document.getElementById('my_select').selectedIndex = 0;
});
$("#my_select").change(function(){
alert("Hi");
});

单击x时,上面的更改代码不会触发,而手动更改时会被触发。我希望它适用于document.getElementById('Typess')。selectedIndex = 1; 也一样 如何使这项工作?

查看更多

查看更多

提问者
Adithya Viswanathan
被浏览
387
Ele 2019-07-03 21:24

change触发该事件是因为用户在该元素上进行了更改。

另一种选择是手动触发该事件,如下所示:

let $typess = $("#Typess")
$(".x").click(function(event) {
  document.getElementById('Typess').selectedIndex = 1;
  $typess.trigger("change");
})

$typess.on('change', function(event) {
  console.log("Changed");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="Typess">
<option>A</option>
<option>B</option>
</select>
<p>
<button class="x">Click me!</button>