捕获jQuery引起的输入更改

时间:2013-12-30 15:36:55

标签: jquery

jquery中是否有一个方法可以捕获何时通过脚本修改字段?

这仅适用于手动修改输入字段

$('input[name=myInput]').change(function() { ... });

所以这个

$('input[name=myInput]').on('input', function() { ... });

我希望这个字段的事件监听器能够捕获这个:

 $('input[name=myInput]').val('changed_value');

1 个答案:

答案 0 :(得分:1)

我也会这样做。沃尔夫说,这是最好的方式:

$('input[name=myInput]').val('changed_value').trigger('change');

但是,如果你真的希望它以编程方式更改它时始终触发更改事件(但我不推荐它!),你可以使用以下内容覆盖jQuery val函数:

(function ($) {
  var originalVal = $.fn.val;
  $.fn.val = function(value) {
    if (typeof value != 'undefined') {
        // setter
        originalVal.call(this, value);
        this.trigger('change');
    }else{
        // getter
        return originalVal.call(this, value);
    }
  };
})(jQuery);

Source