设置选择框的选定值会触发选择列表的更改事件吗?

时间:2013-05-16 06:18:56

标签: javascript jquery

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

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

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

4 个答案:

答案 0 :(得分:4)

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

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

Sample Demo

答案 1 :(得分:3)

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

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

然后尝试以下代码行:

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

请注意,警报信息未显示。

答案 2 :(得分:3)

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

$("#typeFilter").change();

答案 3 :(得分:1)

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

$(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/ {
{3}}