通常,当用户在 <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/