javascript - 没有为下拉菜单调用 onChange 函数
问题描述
我有一个按钮,单击该按钮会将下拉菜单重置为其默认选项。
我有一个下拉菜单的 onchange 事件监听器。单击按钮时未触发事件侦听器。
代码
<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; 也是。如何使这项工作?
解决方案
触发该事件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>
推荐阅读
- enums - 有没有办法在没有模式匹配的情况下直接访问枚举结构中的字段值?
- c - 事件驱动模拟:将新事件插入优先级队列时,旧事件是否变得多余?
- javascript - 在多选项菜单中显示信息的方法
- homebrew - 在 .zshrc 中设置 ZSH_DISABLE_COMPFIX=true 不起作用
- java - 尽管屏幕大小或纵横比如何,如何将 imageView 放在另一个 imageView 上,始终在同一个位置?
- ssl - 什么会导致 https 通过 wifi 加载,而不是通过移动数据加载?
- javascript - 如何根据表格单元格更改值设置字段值
- selenium - EventFiringWebDriver / WebDriverEventListener 调用顺序
- python - 是否有一个 groupby 函数可以创建一个从名称到下划线的新数据框?
- asp.net-core - 为什么 Openiddict 会自动验证 client_id?