我有一个函数可以捕获所有复选框的更改。它在手动单击框时起作用,但在toggleAll()
函数触发它们时不起作用。
无论如何要纠正这个?
$(function() {
$(":checkbox").change(function(){
if ( this.checked ) {
alert(this.id+' is checked');
} else {
alert(this.id+' is not checked');
}
});
});
function toggleAll() {
var selectAllCheckbox = $("#selectAllCheckbox");
if ( selectAllCheckbox.prop('checked') ) {
// uncheck them all
$("[id^=friendRequestCheckbox]").attr('checked', false);
} else {
// check them all
$("[id^=friendRequestCheckbox]").attr('checked', true);
}
}
我正在运行旧版本的jQuery,并且没有更新到包含prop
的新版本,以防万一相关。
答案 0 :(得分:3)
以编程方式更改元素时,还必须以编程方式触发事件。试试:
$("[id^=friendRequestCheckbox]").trigger('change')