2

我正在设置选择列表的选定值,如下所示

$("#typeFilter").val("0");

我的问题是做这个,触发$("#typeFilter").change事件?

4

4 回答 4

4

不,如果您想在设置值 use 后触发事件,它不会触发 change 事件trigger。仅当它是来自设备而不是与 javascript 的交互时才会触发更改事件。

$("#typeFilter").val("0");
$("#typeFilter").trigger('change');

示例演示

于 2013-05-16T06:22:11.537 回答
3

不,它没有!除非用户交互更改了值,否则不会触发更改事件。
你可以自己试试。选择任何文本框的 ID。假设 id 是“inputEmail”。试试下面的代码:

$("#inputEmail").change(function() {
    alert("changed");
});

然后尝试以下代码行:

$("#inputEmail").val("abc");

请注意,警报消息没有出现。

于 2013-05-16T06:21:48.230 回答
3

不,它不会触发它,因为它可以在 this 中看到live demo。您需要在设置值后手动触发它:

$("#typeFilter").change();
于 2013-05-16T06:22:53.387 回答
1

不。它没有改变。这是我使用的代码:

$(document).ready(function(){
    setTimeout(function(){
        $("#test").val("3");
    }, 1000);
    $("#test").change(function(){
        alert("Changed!");
    });
});

因此,如果您想触发更改,可以使用以下内容:

$(document).ready(function(){
    $("#test").val("3").trigger("change");
    $("#test").change(function(){
        alert("Changed!");
    });
});

小提琴:http :
//jsfiddle.net/praveenscience/kLJuS/
http://jsfiddle.net/praveenscience/kLJuS/1/

于 2013-05-16T06:24:49.647 回答