如何知道是否选中了复选框,jquery?

时间:2012-07-11 10:58:42

标签: javascript jquery

有没有更好的方法来做到这一点:

var IsC = $('input[type=checkbox]').attr("checked") == "checked" ? true : false;

4 个答案:

答案 0 :(得分:4)

您可以使用:checked selector

var IsC = $('input[type=checkbox]').is(":checked");

或者:

var IsC = $('input[type=checkbox]:checked').length>0;

答案 1 :(得分:2)

$("input[type=checkbox]").is(":checked")

答案 2 :(得分:1)

var IsC = $('input[type=checkbox]').attr("checked") == "checked" ? true : false; 

就像说:

var IsC = $('input[type=checkbox]').attr("checked") == "checked";

因为==将返回truefalse。 (纯粹是javascript的变化)


jQuery优化(至少在字符数方面)是:

var IsC = $('input:checkbox').is(':checked'); 
//returns true if at least one checkbox in the document is checked

您可以通过告诉选择器应该在哪里找到输入来添加比较范围:

var IsC = $('#myForm input:checkbox').is(':checked');

答案 3 :(得分:0)

一种方法是使用dystroy发布的解决方案。

另一种方法是使用prop方法而不是attr。查看http://api.jquery.com/prop/

上的示例
elem.checked
// true (Boolean) Will change with checkbox state

$(elem).prop("checked")
// true (Boolean) Will change with checkbox state

elem.getAttribute("checked")
// "checked" (String) Initial state of the checkbox; does not change

$(elem).attr("checked") //(1.6)
// "checked" (String) Initial state of the checkbox; does not change

$(elem).attr("checked") //(1.6.1+)
// "checked" (String) Will change with checkbox state

$(elem).attr("checked") //(pre-1.6)
// true (Boolean) Changed with checkbox state