首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何仅使用Jquery“选中”某些复选框?

如何仅使用Jquery“选中”某些复选框?
EN

Stack Overflow用户
提问于 2009-07-03 14:04:24
回答 3查看 2.9K关注 0票数 3

我有一个包含复选框的HTML表单,格式为..

代码语言:javascript
复制
<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代码时,我选择全部或取消选择所有复选框

代码语言:javascript
复制
$('#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;
    });
});

但我需要的功能,其中用户将能够选择某些复选框,取决于输入

代码语言:javascript
复制
    <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之间的复选框。

你能帮我讲讲如何做到这一点吗?如果你建议的话,我可以修改标记来应用一些类/选择器it等,如果这会让它更容易的话。据我所知,这项功能是为使用javascript浏览器的用户准备的。

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-07-03 14:15:56

代码语言:javascript
复制
$("#range123").click(function() {
  var from = $("#frm_range").val();
  var to = $("#to_range").val();
  var expr = ":checkbox.range_opts:lt(" + to + ")";
  if (from > 1) {
    expr += ":gt(" + (from-1) + ")";
  }
  $(expr).attr("checked", true);
});
票数 3
EN

Stack Overflow用户

发布于 2009-07-03 14:11:17

这样如何:

代码语言:javascript
复制
$('#range123').click(function() {
    var bottom = $("#frm_range").value;
    var top = $("#to_range").value;
    $('input[name="range[]"]').each(function() {
            this.checked = ((this.value > bottom) && (this.value < top));
    });
});
票数 1
EN

Stack Overflow用户

发布于 2009-07-03 14:16:03

可以,您只需在选中复选框时选中index即可:

代码语言:javascript
复制
$('#select_all_ranges').click(function() {
    var from = $('#frm_range').val();
    var to = $('#to_range').val();
    var expr = '.range_opts:gt(' + (from-2) + '):lt(' + (to-1) + ')';
    $(expr).attr("checked", true);
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1079502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档