【发布时间】:2009-07-03 14:04:24
【问题描述】:
我有一个 HTML 表单,其中包含 .. 形式的复选框
<input type="checkbox" name="range[]" class="range_opts" id="range-1" value="1" /> 1 <br />
<input type="checkbox" name="range[]" class="range_opts" id="range-2" value="2" /> 2 <br />
<input type="checkbox" name="range[]" class="range_opts" id="range-3" value="3" /> 3 <br />
...
...
<input type="checkbox" name="range[]" class="range_opts" id="range-28" value="28" /> 28<br />
<input type="checkbox" name="range[]" class="range_opts" id="range-29" value="29" /> 29<br />
<input type="checkbox" name="range[]" class="range_opts" id="range-30" value="30" /> 30<br />
使用此 JS 代码,我选择全部或取消选择所有复选框
$('#select_all_ranges').click(function() {
$('input[name="range[]"]').each(function() {
this.checked = true;
});
});
$('#deselect_all_ranges').click(function() {
$('input[name="range[]"]').each(function() {
this.checked = false;
});
});
但我需要用户能够选择某些复选框的功能,具体取决于输入
<input type="text" name="from_range" id="frm_range" />
<input type="text" name="to_range" id="to_range" />
<img src="icon.png" id="range123" />
因此,如果用户输入 5 到 20 并单击图标,它会检查 5-20 的复选框。
您能否帮我一些想法如何实现这一点。如果您建议,我可以更改标记以应用一些类/选择器 ID 等,如果它会使它更容易。 而且我了解此功能适用于拥有启用 javascript 的浏览器的用户。
谢谢。
【问题讨论】:
-
请注意:您不必遍历所有复选框来检查代码中的每个复选框。这将是一个更快的等价物: $('input.range_opts').attr('checked', true);