4

我创建了一个自定义复选框。它基本上是一组 2 个复选框。当 dom 准备好时,两个复选框都被选中。用户只能取消选中一项。


这就是我实施它的方式。

我有一个像这样的容器

<div class="container">
     <input name="my_checkbox_1" type="checkbox" checked="checked">
     <label for="my_checkbox_1" class="on">Hello</label>
     <input name="my_checkbox_2" type="checkbox" checked="checked">
     <label for="my_checkbox_2" class="on">World</label>
</div>

现在当用户点击标签时,我会找到最近的容器

parent = $(this).closest(".container");

一旦我有了父母,我就会找到像这样检查的复选框的数量

len = $(parent).find("input:checkbox:checked").length;

如果 len 为 0,我会尝试以适当的错误提醒用户。这适用于所有其他浏览器,但即(我可以说没有惊喜吗?)。但我在这里做错了什么?

请记住,我有许多这样的容器,其中的复选框具有唯一的名称。

我用 http://jsfiddle.net/kiranruth/UeEyB/1/的代码创建了一个小提琴

4

1 回答 1

6

您需要将 parent 声明为局部变量或重命名它,因为您正在覆盖窗口的 parent 属性

我只想在你的变量前面添加 var

var parent = $(this).closest(".container");
var len = $(parent).find("input:checkbox:checked").length;
于 2013-01-30T16:46:01.007 回答