Javascript 在HTML输入框上模拟要触发的onChange事件

Javascript 在HTML输入框上模拟要触发的onChange事件,javascript,html,internet-explorer,Javascript,Html,Internet Explorer,我有一个jQuery,它使用选择框中的更改事件来更新表单上的输入框。我需要输入框在我更新它的值时触发它的更改事件 上的此链接显示了模拟单击事件的方法。是否有一种技术可以用来模拟变更事件?您可以使用: 您可以使用: 这在理论上应该做到: <input id="textinput" value="somevalue" name="somename" /> <script type="text/javascript"> function doSomethingOnIn

我有一个jQuery,它使用选择框中的更改事件来更新表单上的输入框。我需要输入框在我更新它的值时触发它的更改事件

上的此链接显示了模拟单击事件的方法。是否有一种技术可以用来模拟变更事件?

您可以使用:

您可以使用:


这在理论上应该做到:

<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>

函数doSomethingInputChange(e){
console.log(“更改时的输入”);
}
$('#textinput').bind('change',doSomethingInputChange);
$('#textinput')。触发器('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>

函数doSomethingInputChange(e){
console.log(“更改时的输入”);
}
$('#textinput').bind('change',doSomethingInputChange);
$('#textinput')。触发器('change');

它将事件处理程序绑定到自定义“更改”事件,然后触发该事件。

您可以触发
change
事件处理程序。你可以这样简单地称呼它:

jQuery('#my_field').change();
这是一个快捷方式:

jQuery('#my_field').trigger('change');

有关(其第三个,属性较少的变体)的详细信息。

您可以触发
更改
事件处理程序。你可以这样简单地称呼它:

jQuery('#my_field').change();
这是一个快捷方式:

jQuery('#my_field').trigger('change');

请参阅(第三种,无属性的变体)的更多信息。

已经有一些基于jQuery的好答案(尽管您没有使用jQuery标记),但是如果您将更改事件绑定到调用函数,则还有另一种方法可以为您提供

假设您已经将更改事件绑定到Vlad回答中的
doSomethingInputChange
函数

您可以直接调用
doSomethingInputChange
,而不是通过触发“change”来模拟事件,也就是说,您不需要执行以下操作:

$('#textinput').trigger('change')
您的javascript只是对触发事件时被调用的函数进行调用:

doSomethingOnInputChange( ... );

您可能希望也可能不希望将
#textinput
DOM元素作为直接调用中的参数传递,或者作为事件参数传递(但提供自己的事件参数使这种方法几乎不值得)——这取决于您需要在函数中执行的操作。

已经有几个基于jQuery的好答案(虽然您没有使用jQuery标记),但是如果您将更改事件绑定到调用函数,那么还有另一种方法可以为您工作

假设您已经将更改事件绑定到Vlad回答中的
doSomethingInputChange
函数

您可以直接调用
doSomethingInputChange
,而不是通过触发“change”来模拟事件,也就是说,您不需要执行以下操作:

$('#textinput').trigger('change')
您的javascript只是对触发事件时被调用的函数进行调用:

doSomethingOnInputChange( ... );
您可能希望也可能不希望将
#textinput
DOM元素作为直接调用中的参数传递,或者作为事件参数传递(但提供自己的事件参数使这种方法几乎不值得)——这取决于您在函数中需要做什么