我有一个带有复选框的表单,输入存储在一个数组中:
<input type="checkbox" name="lineup[]" value="1">Tom</input>
<input type="checkbox" name="lineup[]" value="2">David</input>
<input type="checkbox" name="lineup[]" value="3">Sarah</input>
使用jQuery我想找到勾选/选中的复选框:
var total=$(this).find('input[name=lineup]').serialize();
alert(total.length);
然而,总数总是输出0.我做错了什么?
谢谢,
艾伦。
答案 0 :(得分:39)
在选择器中使用:checked
,不要将其序列化,只需获取长度。
var total=$(this).find('input[name="lineup[]"]:checked').length;
也可以在选择器中使用[]
,因为您的复选框在名称中使用[]
。正如@Felix Kling指出的那样,它是名称的一部分,因此您必须明确指定[]
。
答案 1 :(得分:5)
试试这个
alert($('input[name=lineup]:checked').length);
你的方式
$(this).find('input[name=lineup]:checked').length;
答案 2 :(得分:2)
怎么样:
var checkedBoxes = $('input[name=lineup]:checked').length;
alert(checkedBoxes);