【问题标题】:Onchange input event isn't fired on jquery在 jquery 上不会触发 Onchange 输入事件
【发布时间】:2026-01-18 19:10:01
【问题描述】:

我正在使用 jquery。

我在表单中有文本输入,我想处理更改事件。

$("#my_input").change(function(){alert('123');});

当我手动编辑字段时,该事件会正常触发,但是当我使用脚本(有时使用外部脚本)更改字段的值时,它不起作用。

有什么解决办法吗?

提前致谢。

【问题讨论】:

标签: jquery onchange


【解决方案1】:

更改事件并非旨在检测程序化更改。不过,您可以在设置值时手动触发事件:

$('#my_input').trigger('change');

快捷方式:

$('#my_input').change();

【讨论】:

  • 是否有在以编程方式更改输入时触发的事件?
  • @Youcef04:不,JavaScript 不支持这种监控。其他一些语言的结构允许这样的东西,但在 JavaScript 中是不允许的。
  • @Youcef04:如果我能帮助你,你能接受这个答案就好了:)
【解决方案2】:

使用以下两个功能之一手动触发它们:

$('#my_input').trigger('change');
$('#my_input').change();

【讨论】:

    【解决方案3】:

    您可以使用 live/delegate 来绑定您的更改事件

    $("#my_input").live('change',function(){alert('123');}); 
    

    【讨论】:

      【解决方案4】:

      这里是代码

      $("input[type='text']").change( function() {
        // check input ($(this).val()) for validity here
      });
      

      【讨论】: