我正试图在点击时检查复选框的状态。
我的问题是它总是报告为真实,因为它在更改事件发生之后而不是之前报告状态。
无论如何,我可以在改变之前测试。
使用jQuery的当前代码 - 所有类'package'的复选框:
$(".package").click(function(){
if($(this).is(":checked")){
alert($(this).attr("checked"));
}
});
即使选中当前未选中的复选框,也始终返回true。
编辑:好吧似乎有一些旧的js干扰了这个过程,在清理完点击功能之后确实有效。谢谢大家。
答案 0 :(得分:2)
在复选框上使用onchange
事件不是cross-browser(问:IE!是的,即使使用jQuery)。
以下作品:
$('.package').click(function() {
console.log(this.checked) // There is no need for jQuery here
})
勾选复选框时记录'true',取消选中时记录'false'。
严肃地说,使用$(this).attr('checked')
或$(this).is(':checked')
只是jQueryception而已。
答案 1 :(得分:1)
点击事件在实际文本框更改发生之前触发,您需要订阅更改事件:
$(".package").change(function(){
if($(this).is(":checked")){
alert($(this).attr("checked"));
}
});
编辑:尝试查询实际的Javascript对象本身,应该可以正常工作
$(".package").change(function(){
if(this.checked){
alert(this.checked);
}
});
答案 2 :(得分:1)
您可以使用更改事件,这样您就可以确定之前检查过的状态始终是您现在阅读的内容
$(".package").change(function() {
alert($(this).attr("checked"));
});