假设我们有以下标记:
<form>
<button type="button" id="all">check all</button>
<button type="button" id="none">check none</button>
<input type="checkbox" value="one" />
<input type="checkbox" value="two" />
<input type="checkbox" value="three" />
</form>
遵循JavaScript代码:
(function($, document) {
$('#all').on('click', function() {
$('input', $(this).parent()).prop('checked', 'checked');
});
$('#none').on('click', function() {
$('input', $(this).parent()).removeProp('checked');
});
$('input').on('change', function() {
alert(this.value);
});
}(jQuery, document));
(见http://jsfiddle.net/inst/h7kyq/1/)
为什么在点击任意按钮时没有输入onChange事件处理程序?
答案 0 :(得分:3)
在javascript中发生更改时不会触发事件。你需要自己解雇这个活动:
$('input', $(this).parent()).removeProp('checked').change();
答案 1 :(得分:1)
任何编程更改(从脚本更改)到输入元素都不会触发onchange
事件..
或者,您应该在更改状态/值时手动触发更改事件。
见下文,
$('input', $(this).parent()).removeProp('checked').change();