【发布时间】:2016-08-17 23:30:24
【问题描述】:
我正在尝试为用户构建过滤器,包括选择/取消选择所有功能。
我已经建立了很多正确的例子,但没有一个在演示中拥有超过一个过滤器,现在它的行为很奇怪。
当我点击 filter1 的 (All) 时,它工作正常,但不是 filter2 的 (All)...
JSFIDDLE:
https://jsfiddle.net/Max06270/pvtqpn8a/#&togetherjs=2tvV3Mhb7l
HTML:
<div id="filter1">
<form action='#'>
<input type="checkbox" id="select-all" checked>(All)<br>
<!-- Should select/unselect only the F1 checkboxes -->
<input type="checkbox" id="checkbox-f1" checked>F1: Value1<br>
<input type="checkbox" id="checkbox-f1" checked>F1: Value2<br>
<input type="checkbox" id="checkbox-f1" checked>F1: Value3<br>
<input type="checkbox" id="checkbox-f1" checked>F1: Value4<br>
<input type="submit" id="submit-f1" value="Apply">
</form>
</div>
<br>
<div id="filter2">
<form action='#'>
<input type="checkbox" id="select-all" checked>(All)<br>
<!-- Should select/unselect only the F2 checkboxes -->
<input type="checkbox" id="checkbox-f2" checked>F2: Value1<br>
<input type="checkbox" id="checkbox-f2" checked>F2: Value2<br>
<input type="checkbox" id="checkbox-f2" checked>F2: Value3<br>
<input type="checkbox" id="checkbox-f2" checked>F2: Value4<br>
<input type="submit" id="submit-f2" value="Apply">
</form>
</div>
JS:
$("#select-all").change(function () {
$(this).siblings().prop('checked', $(':checkbox').prop("checked"));
});
提前谢谢你, 最大
【问题讨论】:
-
您应该使用
select-all的类而不是 ID。 ID 应该对一个元素是唯一的。编辑:您的输入 ID 也是如此;那些也应该是类。
标签: jquery forms checkbox selectall