在JS中限制多个复选框的数量

问题描述 投票:1回答:1

我有多个带限制的复选框,但是用JS就不能用了,像这样。

$(".checkbox-limit").on('change', function(evt) {
 var limit = parseInt($(this).parent().data("limit"));

if($(this).siblings(':checked').length >= limit) {
       this.checked = false;
       alert("The limit is " + limit)
   }
});

和html这样的。

<div class="row js_check_two" data-limit="2">
    <div class="col-md-12">
        <label>
            <input type="checkbox" class="checkbox-limit" value="1">
        </label>
    </div>
    <div class="col-md-12">
        <label>
            <input type="checkbox" class="checkbox-limit" value="2">
        </label>
    </div>
    <div class="col-md-12">
        <label>
            <input type="checkbox" class="checkbox-limit" value="3">
        </label>
    </div>
    <div class="col-md-12">
        <label>
            <input type="checkbox" class="checkbox-limit" value="4">
        </label>
    </div>
</div>

这段代码不能用

任何建议都将被感激地接受

javascript html checkbox limit
1个回答
0
投票

你必须把你的脚本改成这样

            $(".checkbox-limit").on('change', function(evt) {

             var limit = parseInt($(this).parent().parent().parent().attr("data-limit"));
             console.log($('input.checkbox-limit:checked').length);

            if($('input.checkbox-limit:checked').length > limit) {
                   this.checked = false;
                   alert("The limit is " + limit);
               }
            });  

0
投票

 $(".checkbox-limit").on('change', function(evt) {
 var limit = parseInt($(this).parent().parent().parent().attr("data-limit"));
 console.log($('input.checkbox-limit:checked').length);
 
 if($('input.checkbox-limit:checked').length > limit) {
 this.checked = false;
 alert("The limit is " + limit);
 }
 });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<div class="row js_check_two" data-limit="2">
  <div class="col-md-12">
    <label>
            <input type="checkbox" class="checkbox-limit" value="1">1
        </label>
  </div>
  <div class="col-md-12">
    <label>
            <input type="checkbox" class="checkbox-limit" value="2">2
        </label>
  </div>
  <div class="col-md-12">
    <label>
            <input type="checkbox" class="checkbox-limit" value="3">3
        </label>
  </div>
  <div class="col-md-12">
    <label>
            <input type="checkbox" class="checkbox-limit" value="4">4
        </label>
  </div>
</div>
<br>
<br>
<div class="row js_check_two" data-limit="2">
  <div class="col-md-12">
    <label>
            <input type="checkbox" class="checkbox-limit" value="7">7
        </label>
  </div>
  <div class="col-md-12">
    <label>
            <input type="checkbox" class="checkbox-limit" value="8">8
        </label>
  </div>
  <div class="col-md-12">
    <label>
            <input type="checkbox" class="checkbox-limit" value="9">9
        </label>
  </div>
  <div class="col-md-12">
    <label>
            <input type="checkbox" class="checkbox-limit" value="10">10
        </label>
  </div>
</div>

我用了,但效果为全球

© www.soinside.com 2019 - 2024. All rights reserved.