将可以选择的复选框的数量限制为三个,不包括一个

时间:2015-11-25 13:26:48

标签: javascript jquery html

我正在尝试将可以选择的复选框的数量限制为3.下面的代码可以工作,但我希望第6级和第7级始终可选,即如果有人选择1,2,3,那么6和7应该仍然可以选择。

HTML:

 <div class="pricing-levels-3">
      <p><strong>Which level would you like? (Select 3 Levels)</strong></p>
      <input class="single-checkbox"type="checkbox" name="vehicle" value="Bike">Level 1<br>
      <input class="single-checkbox" type="checkbox" name="vehicle" value="Bike">Level 2<br>
      <input class="single-checkbox" type="checkbox" name="vehicle" value="Bike">Level 3<br>
      <input class="single-checkbox" type="checkbox" name="vehicle" value="Bike">Level 4<br>
      <input class="single-checkbox" type="checkbox" name="vehicle" value="Bike">Level 5<br>
      <input class="single-checkbox" type="checkbox" name="vehicle" value="Bike">Level 6<br>
      <input class="single-checkbox" type="checkbox" name="vehicle" value="Bike">Level 7<br>
    </div>

的jQuery

$('input[type=checkbox]').change(function(e){
if ($('input[type=checkbox]:checked').length > 3) {
    $(this).prop('checked', false)
    alert("allowed only 3");
}
})

Fiddle:

2 个答案:

答案 0 :(得分:0)

更好的是设置一些类来让elemnts可选。这就是说,这将适用于你的情况,使用jQuery :gt()选择器:

if ($('input[type=checkbox]:not(:gt(4)):checked').length < 3)

-jsFiddle-

如果这是您想要选择的最后两个,请改为使用:

if ($('input[type=checkbox]:lt(-2):checked').length > 3)

答案 1 :(得分:0)

试试这个,添加一个类来总是选择复选框

&#13;
&#13;
$('input[type=checkbox]').change(function(e){
   if ($('input[type=checkbox]:checked').not('.selectable').length > 3) {
        $(this).prop('checked', false)
        alert("allowed only 3 main check boxes selectable");
   }
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="pricing-levels-3">
          <p><strong>Which level would you like? (Select 3 Levels)</strong></p>
          <input class="single-checkbox"type="checkbox" name="vehicle" value="Bike">Level 1<br>
          <input class="single-checkbox" type="checkbox" name="vehicle" value="Bike">Level 2<br>
          <input class="single-checkbox" type="checkbox" name="vehicle" value="Bike">Level 3<br>
          <input class="single-checkbox" type="checkbox" name="vehicle" value="Bike">Level 4<br>
          <input class="single-checkbox" type="checkbox" name="vehicle" value="Bike">Level 5<br>
          <input class="single-checkbox selectable" type="checkbox" name="vehicle" value="Bike">Level 6<br>
          <input class="single-checkbox  selectable" type="checkbox" name="vehicle" value="Bike">Level 7<br>
        </div>
&#13;
&#13;
&#13;