17

我有一个带有复选框的表单,输入存储在一个数组中:

<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。我做错了什么?

4

3 回答 3

48

在选择器中使用:checked,不要序列化,获取长度即可。

var total=$(this).find('input[name="lineup[]"]:checked').length;

也在[]选择器中使用,因为您的复选框[]在名称中使用。正如@Felix Kling指出的那样,它是名称的一部分,因此您必须明确指定[].

演示

于 2013-06-13T10:16:12.347 回答
8

尝试这个

 alert($('input[name=lineup]:checked').length);

你的方式

$(this).find('input[name=lineup]:checked').length;
于 2013-06-13T10:16:12.753 回答
3

怎么样:

var checkedBoxes = $('input[name=lineup]:checked').length;
alert(checkedBoxes);
于 2013-06-13T10:16:08.990 回答