简体   繁体   English

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

[英]Limit Number Multiple Checkboxes in JS

I have multiple checkboxes with limits but it doesn't work with JS like this我有多个带有限制的复选框,但它不适用于这样的 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)
   }
});

and for html like this:对于 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>

This code not working,此代码不起作用,

Any suggestions would be gratefully receive!任何建议将不胜感激!

You have to change your script to this -您必须将脚本更改为此 -

            $(".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);
               }
            });  

 $(".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>

I used that but effect for global我使用了它,但对全球的影响

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM