当以编程方式更改表单UI时,事件处理程序将无法触发?

时间:2010-07-12 17:26:04

标签: jquery forms event-handling

我意识到在网页上,当以编程方式更改表单的UI(复选框,下拉列表等)时,不会触发事件处理程序(onchanged)?这是一个标准规则 - 当以编程方式更改控件时,事件处理程序永远不会被触发吗?有什么例外吗?

1 个答案:

答案 0 :(得分:4)

这是正确的,除非Pointy“指出”,否则你也在解雇这个事件。在jQuery中,这就像在正在更改表单的代码中添加对.change()的调用一样简单。

实施例。 -

HTML:

<form id="aForm">
    <input></input><br />
    <input></input><br />
    <input type="checkbox"></input><br />
    <input type="checkbox"></input><br />
</form>

jQuery的:

$('#aForm').change(function() {
   alert('Your form hath changed!');
})
$('#aForm').hide(function(){
   $(this).change();
});

jsFiddle工作示例 - http://jsfiddle.net/qGLc2/