Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 变更事件不发生';当<;的值;选择>;以编程方式设置_Jquery - Fatal编程技术网

Jquery 变更事件不发生';当<;的值;选择>;以编程方式设置

Jquery 变更事件不发生';当<;的值;选择>;以编程方式设置,jquery,Jquery,通常,当用户选择中的项目时,“更改”事件将被触发。 但是,当您使用$('select').val('something')更改相同的值时,不会触发事件 我知道我能做到: $('select').val('something').trigger('change') 但这不是我想要解决的问题 有没有一种方法可以让更改事件正常工作,而不用手动触发它 为了更好地解释问题,我准备了一个快速的JSFIDLE,请查看: 干杯这是不可能的,除非您手动触发更改功能。如果不喜欢多次键入该代码,请扩展jQuery对

通常,当用户选择
中的项目时,“更改”事件将被触发。 但是,当您使用
$('select').val('something')
更改相同
的值时,不会触发事件

我知道我能做到:
$('select').val('something').trigger('change')
但这不是我想要解决的问题

有没有一种方法可以让更改事件正常工作,而不用手动触发它

为了更好地解释问题,我准备了一个快速的JSFIDLE,请查看:


干杯

这是不可能的,除非您手动触发更改功能。如果不喜欢多次键入该代码,请扩展jQuery对象小提琴:


“无需手动触发”。。。不,简短回答:不,使用trigger()你想解决什么问题
.val()
不会执行此操作。
(function($){
    $.fn.changeVal = function(value){
        return this.each(function(){
            $(this).val(value).trigger('change');
        });
    }
})(jQuery);

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