jQuery:如果未选中复选框,则测试

jQuery:如果未选中复选框,则测试,jquery,if-statement,Jquery,If Statement,我很难弄明白这一点。我有两个复选框(将来会有更多): 检查表面环境-1 检查表面环境-2 基本上,我想写一个if语句,并测试其中一个是否被检查,另一个是否未被检查。实现以下目标的最简单方法是什么: if($(“#checkSurfaceEnvironment-1”).attr('checked',true)&& $(“#checkSurfaceEnvironment-2”)。是(“**(非??)***:已选中”){ //做点什么 } 我使用的一种可靠方法是: if($("#checkSurf

我很难弄明白这一点。我有两个复选框(将来会有更多):

  • 检查表面环境-1
  • 检查表面环境-2
基本上,我想写一个if语句,并测试其中一个是否被检查,另一个是否未被检查。实现以下目标的最简单方法是什么:

if($(“#checkSurfaceEnvironment-1”).attr('checked',true)&&
$(“#checkSurfaceEnvironment-2”)。是(“**(非??)***:已选中”){
//做点什么
}

我使用的一种可靠方法是:

if($("#checkSurfaceEnvironment-1").prop('checked') == true){
    //do something
}
如果要迭代选中的元素,请使用父元素

$("#parentId").find("checkbox").each(function(){
    if ($(this).prop('checked')==true){ 
        //do something
    }
});
更多信息:

这很好,因为所有复选框都选中了一个属性,该属性存储复选框的实际状态。如果您希望检查页面并尝试选中和取消选中复选框,您将注意到“已选中”(如果存在)属性将保持不变。此属性仅表示复选框的初始状态,而不是当前状态。当前状态存储在该复选框的dom元素的属性checked中

请参见使用
.attr()
执行此操作,查看是否选中它将是
.attr(“选中”、“选中”)
,如果不是,则将是
.attr(“选中”)==未定义的
另一种方法:

if ( $("#checkSurfaceEnvironment-1").is(":checked") && $("#checkSurfaceEnvironment-2").not(":checked") )
这是一个和这是代码,你也应该使用道具

$('input[type="checkbox"]').mouseenter(function() { 
    if ($(this).is(':checked')) {
        //$(this).prop('checked',false);
        alert("is checked");
    } else {
         //$(this).prop('checked',true);
        alert("not checked");
    }
});​

我注释了切换选中属性的方法。

您也可以使用jQuery方法或选择器:

if (!$("#checkSurfaceEnvironment-1").is(":checked")) {
    // do something if the checkbox is NOT checked
}
if ($('#checkSurfaceEnvironment').not(':checked').length) {
    // do stuff for not selected
}


附加说明 来自
:not()
选择器的jQuery API文档:

if ($('#checkSurfaceEnvironment').not(':checked').length) {
    // do stuff for not selected
}
.not()方法最终将为您提供更具可读性的 将复杂选择器或变量推送到:not() 选择器过滤器。在大多数情况下,这是一个更好的选择


我正在寻找一个更直接的实现,就像avijendr建议的那样

我对他/她的语法有点问题,但我做到了:

if ($('.user-forms input[id*="chkPrint"]:not(:checked)').length > 0)

在我的例子中,我有一个带有类
user forms
的表,我正在检查在
id
中有字符串
checkPrint
的复选框是否未选中。

如果在div中选中了所有checbox,则返回true

function all_checked (id_div){
 all_checked = true;

 $(id_div+' input[type="checkbox"]').each(function() { 
    all_checked = all_checked && $('this').prop('checked');
 }

 return all_checked;
}

这里我有一个关于这个问题的片段

$(函数(){
$(“#臀部”)。单击(函数(){
如果($('[type=“checkbox”]')是(“:checked”)){
$('.checkboxStatus').html(“恭喜!”++$('[type=“checkbox”]:选中”).length+“checkbox选中”);
}否则{
$('.checkboxStatus').html(“对不起!复选框未选中”);
}
返回false;
})
});


复选框

复选框

试试这个

if ($("#checkSurfaceEnvironment-1:checked").length>0) {
    //your code in case of NOT checked
}
在上面的代码中,通过Id选择元素
(#checkSurfaceEnvironment-1)
,然后通过
(:checked)
过滤器过滤出其选中状态


它将返回选中元素对象的数组。如果数组中存在任何对象,那么If条件将得到满足。

我使用了这个,并且为我工作

$("checkbox selector").click(function() {
    if($(this).prop('checked')==true){
       do what you need!
    }
});

简单且易于检查或取消检查条件

<input type="checkbox" id="ev-click" name="" value="" >

<script>
    $( "#ev-click" ).click(function() {
        if(this.checked){
            alert('checked');
        }
        if(!this.checked){
            alert('Unchecked');
        }
    });
</script>

$(“#ev点击”)。点击(函数(){
如果(选中此项){
警报(“已检查”);
}
如果(!this.checked){
警报(“未检查”);
}
});

有两种方法可以检查状况

if ($("#checkSurfaceEnvironment-1").is(":checked")) {
    // Put your code here if checkbox is checked
}
或者你也可以用这个

if($("#checkSurfaceEnvironment-1").prop('checked') == true){
    // Put your code here if checkbox is checked
}

我希望这对你有用。

这里是给出的最简单的方法

 <script type="text/javascript">

        $(document).ready(function () {
            $("#chk_selall").change("click", function () {

                if (this.checked)
                {
                    //do something
                }
                if (!this.checked)
                {
                    //do something

                }

            });

        });

    </script>

$(文档).ready(函数(){
$(“chk#U selall”)。更改(“单击”,函数(){
如果(选中此项)
{
//做点什么
}
如果(!this.checked)
{
//做点什么
}
});
});

我知道这已经得到了回答,但这仍然是一个很好的方法:

if ($("#checkbox").is(":checked")==false) {
    //Do stuff here like: $(".span").html("<span>Lorem</span>");
}
if($(“#复选框”).is(“:checked”)==false){
//在这里做一些事情,比如:$(“.span”).html(“Lorem”);
}
我认为(使用jQuery)检查复选框是否选中的最简单方法是:

如果“选中”:

if ($(this).is(':checked')) {
// I'm checked let's do something
}
if (!$(this).is(':checked')) {
// I'm NOT checked let's do something
}
如果未“选中”:

if ($(this).is(':checked')) {
// I'm checked let's do something
}
if (!$(this).is(':checked')) {
// I'm NOT checked let's do something
}

嗯。。。这将设置
checked=true
@Pablo-检查下面我的答案,我也是一个可靠的/apt选项。@PabloMescher嘿,你能帮我吗?我实际上想确定在几个复选框中选中了哪个复选框?并且,启用/禁用它旁边的文本框。非常感谢您的帮助。@1LASTBR3当然,如果您使用的是jQuery,您只需找到与复选框相关的文本框选择器,然后使用我的第二个示例。它看起来类似于if($(this.prop('checked')){$(this.find(“”.attr(“disabled”,true);}@stopface在这种情况下,此属性将始终是布尔值,因为它是一个计算属性而不是字符串,所以可以使用==。明智的做法是始终使用===尽管,因为这并不总是这种情况使用
|
not
&&
检查是否选中了其中一个<代码>&
检查两个选项是否都已选中$(“#checkSurfaceEnvironment”).is(“:checked”)返回布尔值。如果未选中该复选框,则为真$(“#checkSurfaceEnvironment”).not(“:checked”)返回DOM元素数组。使用“if”进行测试将返回“true”,即使选择器不匹配且数组为空。答案正确的唯一方法是测试i$(“#checkSurfaceEnvironment”).not(“:checked”).length,它将返回0或1。尽管答案可能会有所帮助,但至少应该解释原因。事实上,你的答案已经进入了低质量帖子审核队列(我正在查看它),我建议你编辑你的答案,添加一个解释