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