Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 限制/禁用/启用复选框_Javascript_Jquery_Checkbox - Fatal编程技术网

Javascript 限制/禁用/启用复选框

Javascript 限制/禁用/启用复选框,javascript,jquery,checkbox,Javascript,Jquery,Checkbox,我对此链接有问题: 我扩展了脚本验证的代码,下面是我想要做的 我想要一个默认的复选框 我想限制复选框的选择,例如:如果mvp为3,我应该选择3并禁用复选框的其余部分,就像这样 我想禁用提交按钮,如果选择没有达到例如,如果给定的最大数字是5。如果未选中选择,则提交按钮将不启用 以下是我的示例代码: var mvp = 5; $(document).ready(function() { $("input:checkbox").each(function( index ) {

我对此链接有问题:

我扩展了脚本验证的代码,下面是我想要做的

  • 我想要一个默认的复选框
  • 我想限制复选框的选择,例如:如果mvp为3,我应该选择3并禁用复选框的其余部分,就像这样
  • 我想禁用提交按钮,如果选择没有达到例如,如果给定的最大数字是5。如果未选中选择,则提交按钮将不启用
  • 以下是我的示例代码:

    var mvp = 5;
    
    $(document).ready(function() {
    
    
        $("input:checkbox").each(function( index ) {
            this.checked = ( index < mvp );
        });
    
    $("input:checkbox").click(function() {
    
      var bol = $("input:checkbox:checked").length != mvp;
    
      if(bol){
      alert("You have to choose "+ mvp +" mvp's only");
      this.checked = false;
      $("#button-cart").attr("disabled", true);
      }
      else{
      $("input:checkbox").not(":checked").attr("disabled",bol);
      $("#button-cart").attr("disabled", false);
      }
    });
    
    });
    
    var-mvp=5;
    $(文档).ready(函数(){
    $(“输入:复选框”)。每个(函数(索引){
    此项检查=(指数
    这是小提琴:

    根据这个例子,我将mvp的值设置为5。页面加载时,默认选中5复选框。然后,如果您取消选中1,则警报将触发,提示您应该有5个mvp,然后按钮将禁用。再次选中复选框后,将显示该按钮。但是用户可以选择剩下的两个复选框。但是,如果用户超过5个选择,则警报将再次触发并返回到5个复选框。这里的问题是按钮将保持禁用状态

    你能帮我做这样的逻辑吗:D提前谢谢..

    写:

    $("input:checkbox").each(function (index) {
        this.checked = (index < mvp);
    });
    $("#button-id").attr("disabled", true);
    disable();
    $("input:checkbox").change(function () {
        var bol = $("input:checkbox:checked").length != mvp;
        if (bol) {
            alert("You have to choose " + mvp + " mvp's only");            
            $("#button-id").attr("disabled", true);
            enable();
        } else {
            $("input:checkbox").not(":checked").attr("disabled", bol);
            $("#button-id").attr("disabled", false);
            disable();
        }        
    });
    function enable(){
        $("input:checkbox").not(":checked").each(function(){
            $(this).removeAttr("disabled");
        });
    }
    function disable(){
        $("input:checkbox").not(":checked").each(function(){
            $(this).attr("disabled","disabled");
        });
    }
    
    $(“输入:复选框”)。每个(函数(索引){
    此项检查=(指数

    您不应该设置复选框的checked属性,也不应该禁用按钮

    给你:

    $(function () {
        var $button = $('#button-id'),
            mvp     = 5;
    
        $("input:checkbox").each(function (index) {
            this.checked = (index < mvp);
        }).on("click", function () {
            if ($("input:checkbox:checked").length != mvp) {
                alert("You have to choose " + mvp + " mvp's only");
                $button.prop("disabled", true);
            } else {
                $("input:checkbox").not(":checked").prop("disabled", false);
                $button.prop("disabled", false);
            }
        });
    });
    
    $(函数(){
    变量$button=$(“#按钮id”),
    mvp=5;
    $(“输入:复选框”)。每个(函数(索引){
    此项检查=(指数
    工作演示:

    试试这个

    var mvp = 5;
    $(document).ready(function () {
        $("input:checkbox").each(function (index) {
            this.checked = (index < mvp);
        }).click(function () {
           en_dis= $("input:checkbox:checked").length < mvp
           $('#button-id').prop('disabled', en_dis);
           // to disable other checkboxes
           $('input:checkbox:checked').length >= mvp &&
               $("input:checkbox:not(:checked)").prop('disabled',true);
        }).change(function () {
           if ($(this).siblings(':checked').length >= mvp) {
               this.checked = false;
           }
        });
    });
    
    var-mvp=5;
    $(文档).ready(函数(){
    $(“输入:复选框”)。每个(函数(索引){
    此项检查=(指数=mvp&&
    $(“输入:复选框:未(:选中)”).prop('disabled',true);
    }).改变(功能){
    if($(this).sides(':checked').length>=mvp){
    此项检查=错误;
    }
    });
    });
    

    加载页面时。将有一个默认的5复选框,对吗?但当我尝试检查第6个复选框时,警报将触发并再次返回5个复选框,但按钮仍处于禁用状态。用户不应选择不超过给定的mvp。程序应该限制用户选中除5个复选框之外的其他复选框。谢谢@Rohan Kumar这正是我想要做的。但是,当选中时,复选框不会被禁用exceeds@user2593560现在检查我的答案和更新的演示是好的:D更新的演示有错误。因为如果用户在加载时选中第6个复选框(默认选中5个复选框),则第6和第7个复选框将禁用。但如果我取消选中5个复选框中的1个,则默认为。第6个和第7个复选框应该再次打开以进行检查。是的,我认为您应该使用
    工作演示
    ,如果用户在选择
    5个复选框后需要
    更改
    复选框
    ,那么他可以不受任何限制地进行更改。