检查click - jQuery上是否未选中复选框

时间:2012-06-22 15:22:40

标签: jquery

我想检查当用户点击它时是否取消选中复选框。这是因为我想在用户取消选中复选框时进行验证。因为需要检查至少一个复选框。因此,如果他取消选中最后一个,那么它会再次自动检查。

使用jQuery,我可以很容易地发现它是否经过检查:

$('#check1').click(function() {
    if($(this).is(':checked'))
        alert('checked');
    else
        alert('unchecked');
});

但实际上我只想要一个if语句来检查一个复选框是否被取消选中。

所以我想我可以用以下代码来做到这一点:

$('#check2').click(function() {
    if($(this).not(':checked'))
        alert('unchecked');
    else
        alert('checked');
});

但这将始终显示“未经检查”的消息。不是我真正期待的......

演示: http://jsfiddle.net/tVM5H/

所以我最终需要这样的东西:

$('#check2').click(function() {
    if($(this).not(':checked')) {
        // Got unchecked, so something!!!
    }
});

但显然这不起作用。我宁愿不想使用第一个例子,因为当我只需要一个'if'语句时,我会有一个不必要的'else'语句。

首先,这是一个jQuery错误吗?对我来说这是出乎意料的行为。第二,任何人都想要一个好的选择吗?

8 个答案:

答案 0 :(得分:143)

试试这个:

if(!$(this).is(':checked'))

demo

答案 1 :(得分:38)

已发布的答案将有效。如果你想使用jQuery:不是你可以这样做:

if ($(this).is(':not(:checked)'))

if ($(this).attr('checked') == false)

答案 2 :(得分:5)

$(document).ready(function() {
        $("#check1").click(function() {
            var checked = $(this).is(':checked');
            if (checked) {
                alert('checked');
            } else {
                alert('unchecked');
            }
        });
    });

答案 3 :(得分:3)

要检查jQuery的jQuery吗?真的?

if(!this.checked) {

不要使用火箭筒做剃须刀的工作。

答案 4 :(得分:3)

<script type="text/javascript">

 if(jQuery('input[id=input_id]').is(':checked')){
  // Your Statment
 }else{
  // Your Statment
 }

 OR

 if(jQuery('input[name=input_name]').is(':checked')){
  // Your Statment
 }else{
  // Your Statment
 }

</script>

从此处获取的代码:http://chandreshrana.blogspot.in/2015/10/how-to-check-if-checkbox-is-checked-or.html

答案 5 :(得分:2)

查看这个问题的一些答案 - 我认为它可能适用于你的问题:

how to run click function after default behaviour of a element

我认为您在onclick函数的浏览器实现中遇到了不一致。有些人选择在事件触发之前切换复选框,之后选择一些。

答案 6 :(得分:1)

答案已经发布。但我们也可以这样使用jquery

<强> demo

$(function(){
    $('#check1').click(function() {
        if($('#check1').attr('checked'))
            alert('checked');
        else
            alert('unchecked');
    });

    $('#check2').click(function() {
        if(!$('#check2').attr('checked'))
            alert('unchecked');
        else
            alert('checked');
    });
});

答案 7 :(得分:0)

这样做

if (typeof $(this).attr("checked") == "undefined" )

// To check if checkbox is checked
if( $(this).attr("checked")=="checked")