1

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

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

?

4

4 回答 4

4

您可以使用:checked 选择器

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

或者 :

var IsC = $('input[type=checkbox]:checked').length>0;
于 2012-07-11T10:59:21.823 回答
2
$("input[type=checkbox]").is(":checked")
于 2012-07-11T11:00:34.057 回答
1
var IsC = $('input[type=checkbox]').attr("checked") == "checked" ? true : false; 

和刚才说的一样:

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

因为==将返回trueor false。(纯粹是 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');
于 2012-07-11T11:07:25.960 回答
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
于 2012-07-11T11:02:06.977 回答