通常,当用户在 <select> 中选择一个项目时,'change' 事件会被触发。
但是,当您使用 <select> 更改相同 $('select').val('something') 的值时,不会触发该事件。

我知道我可以这样做:$('select').val('something').trigger('change');但这不是我要解决的问题...

有没有办法让更改事件工作,而无需手动触发它?

我整理了一个快速的 JsFiddle 来更好地解释问题,请查看:

http://jsfiddle.net/W723K/1/

干杯

最佳答案

这是不可能的,除非您手动触发更改功能。如果您不喜欢多次输入该代码,请扩展 jQuery 对象。 fiddle :http://jsfiddle.net/W723K/2/

(function($){
    $.fn.changeVal = function(value){
        return this.each(function(){
            $(this).val(value).trigger('change');
        });
    }
})(jQuery);

//Usage:
$('select').changeVal('something');

关于jquery - 以编程方式设置 <select> 的值时,不会调用更改事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7905871/

10-11 22:31
查看更多