当值设置为val()时,change()事件处理程序中的逻辑不会运行,但当用户用鼠标 Select 值时,它会运行.这是为什么?

<select id="single">
    <option>Single</option>
    <option>Single2</option>
</select>

<script>
    $(function() {
        $(":input#single").change(function() {
           /* Logic here does not execute when val() is used */
        });
    });

    $("#single").val("Single2");
</script>

推荐答案

因为change事件需要由用户发起的实际浏览器事件,而不是通过javascript代码.

改为执行以下操作:

$("#single").val("Single2").trigger('change');

$("#single").val("Single2").change();

Html相关问答推荐

Vue.js复选框对齐问题:在表格单元格中居中复选框

如何增加行背景的宽度而不影响上面的内容?""' HTML CSS

CSS/添加margin—top到嵌入式facebook帖子

如何使用css实现悬停时的动画zoom ?

使用HTML进行DAX测量

如何在排序上重用参数?

角化、剪裁、边缘,但仅在底部2和平滑包装上

如何删除FONT创建的文本下方的空格

顶部有文字的图像的悬停效果

当多个a元素用作目标时的:target伪类

如何使用 Flutter 构建 Chrome 扩展?

为什么我的图像在悬停时与固定顶部栏重叠?

如何从 div 内的属性中提取 href 和文本

理解图像与其内容框之间的关系

Tailwind 网格行高度可防止拉伸到最高行的所有相同高度

如何使文本区域自动扩展到最大高度?

如何将 HTML DateTime 转换为 Golang Time 对象

是否可以将文本添加到表格边框?

如何向上移动图像并溢出图像的一部分而另一部分不溢出

将固定/绝对伪元素放置在相对 div(具有滚动条)内,始终位于底部