javascript - 通过 JS 更新值时,jQuery on change/input 不起作用

标签 javascript jquery jquery-events jquery-on

<分区>

我注意到当 Javascript 本身完成更改时,$('#firstId') 的事件没有触发。

为什么会这样?

有没有办法仍然触发事件?

这是一个例子:

$('#firstId').on('change input paste', function(){
  console.log("this is the input event being fired");
});

$('#randomButton').on('click', function(){
  $('#firstId').val(Math.floor(Math.random()*2147483647 )+1);
  console.log("randomButton being fired");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span for="firstId">number: </span>
<input type="number" id="firstId"/>
<p>Or</p>
<button id="randomButton">Get a random number</button><br>

最佳答案

这是因为上面通过处理程序附加的所有事件都是由用户操作触发的,而不是通过代码触发的。您可以在此处使用 .trigger().change() 来触发事件:

$('#firstId').val(Math.floor(Math.random()*2147483647 )+1).change();

$('#firstId').val(Math.floor(Math.random()*2147483647 )+1).trigger('change');

关于javascript - 通过 JS 更新值时,jQuery on change/input 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40549423/

相关文章:

asp.net - 验证 RadioButtonGroup 客户端

javascript - 事件在附加 View 中不起作用

jQuery 只执行最后一个事件

javascript - 如何在现有 <div> 光标位置单击按钮时插入新 <div>

javascript - 我的错误控制台中出现未定义的错误

javascript - 有没有办法在打开页面之前更改页面的元素

javascript - 为什么在 jQuery 中传递给我的回调函数的参数不断变化?

jquery - 搜索 Twitter API v.1.1 jQuery 插件

javascript - e.preventDefault - 有没有办法做默认?

javascript - 如何在 Ember.js 中创建一个计算属性来查看单个 Ember 数据属性是否脏?