检查是否使用jQuery选中了复选框

Jak*_*ake 1122 javascript checkbox jquery

如何检查复选框数组中的复选框是否使用复选框数组的ID进行检查?

我使用以下代码,但无论id如何,它总是返回已选中复选框的计数.

function isCheckedById(id) {
    alert(id);
    var checked = $("input[@id=" + id + "]:checked").length;
    alert(checked);

    if (checked == 0) {
        return false;
    } else {
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

Joh*_*ker 1936

$('#' + id).is(":checked")
Run Code Online (Sandbox Code Playgroud)

如果选中该复选框,则会得到.

对于具有相同名称的复选框数组,您可以通过以下方式获取已检查的复选框列表:

var $boxes = $('input[name=thename]:checked');
Run Code Online (Sandbox Code Playgroud)

然后循环浏览它们,看看你能做什么检查:

$boxes.each(function(){
    // Do stuff here with this
});
Run Code Online (Sandbox Code Playgroud)

要查找检查的数量,您可以执行以下操作:

$boxes.length;
Run Code Online (Sandbox Code Playgroud)

  • @Zubin:小心`.attr('checked')`.它的行为在jQuery 1.6中发生了变化.它曾用于返回`false`或`true`.现在它返回`undefined`或``checked'`.`.is(':checked')`没有这个问题. (83认同)
  • 注意:自jQuery 1.8以来,不推荐使用size() - 而是使用.length (5认同)
  • 另一种方式是`$('#'+ id).attr('checked')`,相当于`$('#'+ id).is(":checked")``但更容易记住IMO. (2认同)
  • $('#'+id).prop('checked') 将返回 true 或 false。 (2认同)

nic*_*ckf 654

ID必须在您的文档中是唯一的,这意味着您不应该这样做:

<input type="checkbox" name="chk[]" id="chk[]" value="Apples" />
<input type="checkbox" name="chk[]" id="chk[]" value="Bananas" />
Run Code Online (Sandbox Code Playgroud)

而是删除ID,然后按名称或包含元素选择它们:

<fieldset id="checkArray">
    <input type="checkbox" name="chk[]" value="Apples" />

    <input type="checkbox" name="chk[]" value="Bananas" />
</fieldset>
Run Code Online (Sandbox Code Playgroud)

现在jQuery:

var atLeastOneIsChecked = $('#checkArray:checkbox:checked').length > 0;
//there should be no space between identifier and selector

// or, without the container:

var atLeastOneIsChecked = $('input[name="chk[]"]:checked').length > 0;
Run Code Online (Sandbox Code Playgroud)

  • 为什么要使用`$('#checkArray:checkbox:checked').length> 0;`当更简单的`$('#checkArray').checked`有效并且可以在更多版本上使用? (26认同)
  • @Oddman它确实有效,只是不在jquery对象上.而不是$(elem).checked,尝试elem.checked. (3认同)

小智 291

$('#checkbox').is(':checked'); 
Run Code Online (Sandbox Code Playgroud)

如果选中复选框,则上面的代码返回true,否则返回false.

  • 使用$(this).is(':checked')时非常有用; 谢谢! (5认同)

jus*_*ajm 113

以下所有方法都很有用:

$('#checkbox').is(":checked")

$('#checkbox').prop('checked')

$('#checkbox')[0].checked

$('#checkbox').get(0).checked
Run Code Online (Sandbox Code Playgroud)

建议应该避免使用DOMelement或内联"this.checked",而应该使用jQuery on方法事件监听器.


Kun*_*roy 93

用于检查复选框是否已选中的jQuery代码:

if($('input[name="checkBoxName"]').is(':checked'))
{
  // checked
}else
{
 // unchecked
}
Run Code Online (Sandbox Code Playgroud)

或者:

if($('input[name="checkBoxName"]:checked'))
{
    // checked
}else{
  // unchecked
}
Run Code Online (Sandbox Code Playgroud)

  • 第一个解决方案是缺少`:`...正确的是:`if(('input [name ="checkBoxName"]').is(':checked'))`. (4认同)

Tec*_*hie 64

要记住关于checked属性的最重要的概念是它与checked属性不对应.该属性实际上对应于defaultChecked属性,应仅用于设置复选框的初始值.checked属性值不会随复选框的状态而改变,而checked属性则会改变.因此,确定是否选中复选框的跨浏览器兼容方式是使用该属性

以下所有方法都是可行的

elem.checked 

$(elem).prop("checked") 

$(elem).is(":checked") 
Run Code Online (Sandbox Code Playgroud)


小智 38

这也是我经常使用的一个想法:

var active = $('#modal-check-visible').prop("checked") ? 1 : 0 ;
Run Code Online (Sandbox Code Playgroud)

如果检查,它将返回 1;否则它会返回0。


Moh*_* MK 36

你可以使用这段代码,

if($("#checkboxId").is(':checked')){
     // Code in the case checkbox is checked.
} else {
     // Code in the case checkbox is NOT checked.
}
Run Code Online (Sandbox Code Playgroud)


Sub*_*axe 28

根据jQuery 文档,有以下方法可以检查是否选中了复选框.让我们考虑一个复选框为例(使用所有示例检查工作jsfiddle)

<input type="checkbox" name="mycheckbox" id="mycheckbox" />
<br><br>
<input type="button" id="test-with-checked" value="Test with checked" />
<input type="button" id="test-with-is" value="Test with is" />
<input type="button" id="test-with-prop" value="Test with prop" />
Run Code Online (Sandbox Code Playgroud)

示例1 - 选中

$("#test-with-checked").on("click", function(){
    if(mycheckbox.checked) {
        alert("Checkbox is checked.");
    } else {
        alert("Checkbox is unchecked.");
    }
}); 
Run Code Online (Sandbox Code Playgroud)

示例2 - 使用jQuery,注意 - :选中

var check;
$("#test-with-is").on("click", function(){
    check = $("#mycheckbox").is(":checked");
    if(check) {
        alert("Checkbox is checked.");
    } else {
        alert("Checkbox is unchecked.");
    }
}); 
Run Code Online (Sandbox Code Playgroud)

示例3 - 使用jQuery prop

var check;
$("#test-with-prop").on("click", function(){
    check = $("#mycheckbox").prop("checked");
    if(check) {
         alert("Checkbox is checked.");
    } else {
        alert("Checkbox is unchecked.");
    }
}); 
Run Code Online (Sandbox Code Playgroud)

检查工作jsfiddle


小智 26

你可以试试这个:

<script>
function checkAllCheckBox(value)
{
   if($('#select_all_').is(':checked')){
   $(".check_").attr ( "checked" ,"checked" );
    }
    else
    {
        $(".check_").removeAttr('checked');
    }

 }

</script>
<input type="checkbox" name="chkbox" id="select_all_" value="1" />


<input type="checkbox" name="chkbox" class="check_" value="Apples" />
<input type="checkbox" name="chkbox" class="check_" value="Bananas" />
<input type="checkbox" name="chkbox" class="check_" value="Apples" />
<input type="checkbox" name="chkbox" class="check_" value="Bananas" />
Run Code Online (Sandbox Code Playgroud)


小智 21

您可以通过jquery使用以下任何建议的代码.

if ( elem.checked ) {};
if ( $( elem ).prop( "checked" ) ) {};
if ( $( elem ).is( ":checked" ) ) {};
Run Code Online (Sandbox Code Playgroud)


Com*_*ine 20

我知道OP想要jquery,但在我的情况下,纯JS是答案所以如果有人喜欢我在这里并且没有jquery或者不想使用它 - 这里是JS答案:

document.getElementById("myCheck").checked
Run Code Online (Sandbox Code Playgroud)

如果选中ID为myCheck的输入,则返回true;如果未选中,则返回false.

就那么简单.

  • 意思是`$("#myCheck")[0] .checked`将在jquery中运行!:d (8认同)

inf*_*sud 16

$(document).on('click','#checkBoxId',function(){
  var isChecked = $(this).is(':checked');
  console.log(isChecked);
});
Run Code Online (Sandbox Code Playgroud)

上面的代码也适用于引导模式。isChecked 为 true 或 flase ;


osc*_*lon 11

尝试这个...

$(function(){
  $('body').on('click','.checkbox',function(e){
    
    if($(this).is(':checked')){
      console.log('Checked')
    } else {
      console.log('Unchecked')
    }
  })
})
Run Code Online (Sandbox Code Playgroud)


Aam*_*zad 10

你可以这样做;

工作小提琴

HTML

<input id="checkbox" type="checkbox" />
Run Code Online (Sandbox Code Playgroud)

jQuery的

$(document).ready(function () {
    var ckbox = $('#checkbox');

    $('input').on('click',function () {
        if (ckbox.is(':checked')) {
            alert('You have Checked it');
        } else {
            alert('You Un-Checked it');
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

甚至更简单;

$("#checkbox").attr("checked") ? alert("Checked") : alert("Unchecked");
Run Code Online (Sandbox Code Playgroud)

如果checkbox选中,true否则将返回undefined


An *_*ion 7

用于检查和设置复选框的简单演示.

jsfiddle!

$('.attr-value-name').click(function() {
    if($(this).parent().find('input[type="checkbox"]').is(':checked'))
    {
        $(this).parent().find('input[type="checkbox"]').prop('checked', false);
    }
    else
    {
        $(this).parent().find('input[type="checkbox"]').prop('checked', true);
    }
});
Run Code Online (Sandbox Code Playgroud)


小智 6

切换复选框已选中

$("#checkall").click(function(){
    $("input:checkbox").prop( 'checked',$(this).is(":checked") );
})
Run Code Online (Sandbox Code Playgroud)


Vin*_*yon 6

只是在我的例子中说情况是一个对话框,然后在关闭对话框之前验证复选框.上面没有以及如何检查jQuery中是否选中了复选框?jQuery如果选中复选框似乎也不起作用.

到底

<input class="cb" id="rd" type="checkbox">
<input class="cb" id="fd" type="checkbox">

var fd=$('.cb#fd').is(':checked');
var rd= $('.cb#rd').is(':checked');
Run Code Online (Sandbox Code Playgroud)

这样就可以调用类,然后调用ID.而不仅仅是ID.这可能是由于此页面上的嵌套DOM元素导致问题.解决方法在上面.


dar*_*mid 5

这样的事情可以帮助

togglecheckBoxs =  function( objCheckBox ) {

    var boolAllChecked = true;

    if( false == objCheckBox.checked ) {
        $('#checkAll').prop( 'checked',false );
    } else {
        $( 'input[id^="someIds_"]' ).each( function( chkboxIndex, chkbox ) {
            if( false == chkbox.checked ) {
                $('#checkAll').prop( 'checked',false );
                boolAllChecked = false;
            }
        });

        if( true == boolAllChecked ) {
            $('#checkAll').prop( 'checked',true );
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


Ani*_*kur 5

对于带有id的复选框

<input id="id_input_checkbox13" type="checkbox"></input>
Run Code Online (Sandbox Code Playgroud)

你可以干脆做

$("#id_input_checkbox13").prop('checked')
Run Code Online (Sandbox Code Playgroud)

您将获得truefalse作为上述语法的返回值.您可以在if子句中将其用作普通布尔表达式.


Bla*_*her 5

实际上,根据jsperf.com所说,DOM操作最快,然后是$()。prop(),然后是$()。is()!

以下是语法:

var checkbox = $('#'+id);
/* OR var checkbox = $("input[name=checkbox1]"); whichever is best */

/* The DOM way - The fastest */
if(checkbox[0].checked == true)
   alert('Checkbox is checked!!');

/* Using jQuery .prop() - The second fastest */
if(checkbox.prop('checked') == true)
   alert('Checkbox is checked!!');

/* Using jQuery .is() - The slowest in the lot */
if(checkbox.is(':checked') == true)
   alert('Checkbox is checked!!');
Run Code Online (Sandbox Code Playgroud)

我个人更喜欢.prop()。不同于.is(),它也可以用来设置值。