我有jQuery使用选择框中的更改事件来更新窗体上的输入框。当我更新它的值时,我需要输入框来触发它的更改事件。模拟onChange事件在HTML输入框上触发
此链接MSDN显示了一种模拟点击事件的方法。有没有一种技术可以用来模拟变化事件?
我有jQuery使用选择框中的更改事件来更新窗体上的输入框。当我更新它的值时,我需要输入框来触发它的更改事件。模拟onChange事件在HTML输入框上触发
此链接MSDN显示了一种模拟点击事件的方法。有没有一种技术可以用来模拟变化事件?
您可以使用trigger()
:
$('#input-id').trigger('change');
这理论上应该做到这一点:
<input id="textinput" value="somevalue" name="somename" />
<script type="text/javascript">
function doSomethingOnInputChange(e) {
console.log('input on change');
}
$('#textinput').bind('change', doSomethingOnInputChange);
$('#textinput').trigger('change');
</script>
它结合事件处理程序定制的“改变”事件,然后触发事件。
您可以触发器change
事件处理程序。你可以简单地调用它像:
jQuery('#my_field').change();
这是一个捷径:
jQuery('#my_field').trigger('change');
查看更多关于documentation of .change()
(第三,属性变化较小)。
已经有几个很好的基于jQuery的答案(虽然你没有使用jQuery标签),但如果你要绑定change事件来调用一个函数,还有另一种方法可以为你工作。
说你已经通过触发“变”势必改变事件的doSomethingOnInputChange
功能在弗拉德的答案...
而不是模拟的事件,你可以直接调用doSomethingOnInputChange
- 这是不是在做, :
$('#textinput').trigger('change')
你的JavaScript只是让同一个函数的调用,当你触发事件被称为反正:
doSomethingOnInputChange(...);
您可能希望或不希望将#textinput
DOM元素作为参数传递给直接调用或事件参数(但提供您自己的事件参数使这种方法不值得) - 这些取决于您需要做什么功能。