2011-11-02 321 views
0

我有jQuery使用选择框中的更改事件来更新窗体上的输入框。当我更新它的值时,我需要输入框来触发它的更改事件。模拟onChange事件在HTML输入框上触发

此链接MSDN显示了一种模拟点击事件的方法。有没有一种技术可以用来模拟变化事件?

回答

0

这理论上应该做到这一点:

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

它结合事件处理程序定制的“改变”事件,然后触发事件。

1

您可以触发器change事件处理程序。你可以简单地调用它像:

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

这是一个捷径:

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

查看更多关于documentation of .change()(第三,属性变化较小)。

0

已经有几个很好的基于jQuery的答案(虽然你没有使用jQuery标签),但如果你要绑定change事件来调用一个函数,还有另一种方法可以为你工作。

说你已经通过触发“变”势必改变事件的doSomethingOnInputChange功能在弗拉德的答案...

而不是模拟的事件,你可以直接调用doSomethingOnInputChange - 这是不是在做, :

$('#textinput').trigger('change') 

你的JavaScript只是让同一个函数的调用,当你触发事件被称为反正:

doSomethingOnInputChange(...); 

您可能希望或不希望将#textinput DOM元素作为参数传递给直接调用或事件参数(但提供您自己的事件参数使这种方法不值得) - 这些取决于您需要做什么功能。