小编典典

当我使用val()设置select的值时,为什么jquery change事件没有触发?

html

change()当值由设置时,事件处理程序中的逻辑未运行val(),但当用户使用鼠标选择值时,该逻辑确实运行。为什么是这样?

<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>

阅读 1102

收藏
2020-05-10

共1个答案

小编典典

因为该change事件需要由用户而不是通过JavaScript代码启动的实际浏览器事件。

而是这样做:

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

要么

$("#single").val("Single2").change();
2020-05-10