首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >下拉菜单不调用onChange函数

下拉菜单不调用onChange函数
EN

Stack Overflow用户
提问于 2019-07-03 13:17:05
回答 4查看 155关注 0票数 0

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

对于下拉菜单,我有一个onchange事件侦听器。当我单击按钮时,事件侦听器不会被触发。

HTML代码

代码语言:javascript
复制
<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>
代码语言:javascript
复制
$("#reset").on("click", function () {
document.getElementById('my_select').selectedIndex = 0;
});
$("#my_select").change(function(){
alert("Hi");
});

上面关于更改代码的内容不是在单击x时触发的,而是在手动更改时触发的。我希望它也适用于document.getElementById('Typess').selectedIndex = 1;。怎样才能做到这一点?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-07-03 13:24:10

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

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

代码语言:javascript
复制
let $typess = $("#Typess")
$(".x").click(function(event) {
  document.getElementById('Typess').selectedIndex = 1;
  $typess.trigger("change");
})

$typess.on('change', function(event) {
  console.log("Changed");
});
代码语言:javascript
复制
<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>

票数 2
EN

Stack Overflow用户

发布于 2019-07-03 13:24:03

试试这个:

代码语言:javascript
复制
    $(".x").click(function(event){
    // alert(" x is clicked") (This alert is working)
     document.getElementById('Typess').val(1);
    })

还要确保确实更改了值,而不是尝试设置相同的值。

票数 0
EN

Stack Overflow用户

发布于 2019-07-03 13:56:28

尝试在change 1中实现您的click事件:

代码语言:javascript
复制
$("#reset").on("click", function () {
document.getElementById('my_select').selectedIndex = 0;

  $("#my_select").change(function(){
  alert("Hi");
  });
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56871077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档