检查单击- jQuery时是否未选中复选框

2mbi3lxu  于 2022-12-18  发布在  jQuery
关注(0)|答案(8)|浏览(181)

我想检查一个复选框是否刚被取消选中,当用户点击它时。这样做的原因是因为我想在用户取消选中复选框时进行验证。因为至少有一个复选框需要被选中。所以如果他取消选中最后一个复选框,那么它会自动再次选中自己。
使用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!!!
    }
});


但显然这是行不通的,我不想用第一个例子,因为那样的话我就有了一个不必要的'else'语句,而我只需要一个'if'语句。
首先,这是一个jQuery bug吗?因为对我来说这是一个意想不到的行为。其次,有人想到一个好的替代方案吗?

syqv5f0l

syqv5f0l1#

试试这个:

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

demo

wyyhbhjk

wyyhbhjk2#

已经发布的答案将起作用。如果你想使用jQuery:not,你可以这样做:

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

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

bejyjqdl3#

jQuery检查是否已选中?是否确定?

if(!this.checked) {

不要用火箭炮来做剃刀的工作。

xqkwcwgp

xqkwcwgp4#

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

eit6fx6z5#

<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

sshcrbum

sshcrbum6#

看看这个问题的一些答案-我想它可能适用于你:
如何在元素的默认行为后运行单击功能
我认为你在浏览器中onclick函数的实现中遇到了不一致的问题,有些选择在事件触发之前切换复选框,有些选择在事件触发之后切换。

cyej8jka

cyej8jka7#

答案已经贴出来了。但是我们也可以用这种方式使用jquery

**一个

$(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');
    });
});
jxct1oxe

jxct1oxe8#

像这样做

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

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

相关问题