选中复选框后,选中已检查状态

时间:2012-04-04 11:31:24

标签: javascript jquery class checkbox click

我正试图在点击时检查复选框的状态。

我的问题是它总是报告为真实,因为它在更改事件发生之后而不是之前报告状态。

无论如何,我可以在改变之前测试。

使用jQuery的当前代码 - 所有类'package'的复选框:

$(".package").click(function(){
    if($(this).is(":checked")){
        alert($(this).attr("checked"));
    }
});

即使选中当前未选中的复选框,也始终返回true。

编辑:好吧似乎有一些旧的js干扰了这个过程,在清理完点击功能之后确实有效。谢谢大家。

3 个答案:

答案 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"));
});