Javascript 仅允许选中2个复选框

Javascript 仅允许选中2个复选框,javascript,Javascript,我想说我很少使用javascript。它从来都不是我喜欢的东西,也可能永远不会,所以我很抱歉我对这门语言缺乏了解。。这就是为什么我的问题如此丢脸 我在网上找到了这段代码: function checkboxlimit(checkgroup, limit){ var checkgroup=checkgroup var limit=limit for (var i=0; i<checkgroup.length; i++){ checkgroup[i].o

我想说我很少使用javascript。它从来都不是我喜欢的东西,也可能永远不会,所以我很抱歉我对这门语言缺乏了解。。这就是为什么我的问题如此丢脸

我在网上找到了这段代码:

function checkboxlimit(checkgroup, limit){
    var checkgroup=checkgroup
    var limit=limit
    for (var i=0; i<checkgroup.length; i++){
        checkgroup[i].onclick=function(){
        var checkedcount=0
        for (var i=0; i<checkgroup.length; i++)
            checkedcount+=(checkgroup[i].checked)? 1 : 0
        if (checkedcount>limit){
            alert("You can check a maximum of "+limit+" boxes.")
            this.checked=false
            }
        }
    }
}

<script type="text/javascript">
    checkboxlimit(document.forms.checkform.weapon[], 2)
</script>
功能检查框限制(检查组,限制){
var checkgroup=checkgroup
风险限额=限额

对于(var i=0;i在使用点表示法时不能使用
[]
。请切换为将其视为关联数组

checkboxlimit(document.forms.checkform['weapon[]'], 2)

很好用


此外,您不需要重新定义
检查组
限制
。您可以将它们用作参数。

在使用点表示法时,不能使用
[]
。请将其视为关联数组

checkboxlimit(document.forms.checkform['weapon[]'], 2)

很好用


此外,您不需要重新定义
检查组
限制
。您可以将它们用作参数。

您正在寻找类似的内容吗

$(':checkbox[name=weapon]').on('click',function(){

    var checkedBoxlength=$(':checkbox[name=weapon]:checked').length;
    if(checkedBoxlength>2){
        alert('You can check a maximum of 2 boxes.');
        return false;
    }
});

---编辑

刚刚做了一个jquery插件,只是为了限制你检查的复选框的数量

(function( $ ){

  $.fn.LimitCheckableNumber = function( options ) {     
    var settings = $.extend( {
      'nr'         : 1,    
    }, options);
    return this.each(function() {        
         var $this=$(this),
             thisName=$this.attr('name');
        $this.on('click',function(){            
            var count=$(":checked[name='"+thisName+"']").length;           
            if(count>settings.nr){
            alert('You can check a maximum of '+settings.nr+' boxes. ');
                return false;
            };            
        });
    });
  };
})( jQuery );

你在找这样的东西吗

$(':checkbox[name=weapon]').on('click',function(){

    var checkedBoxlength=$(':checkbox[name=weapon]:checked').length;
    if(checkedBoxlength>2){
        alert('You can check a maximum of 2 boxes.');
        return false;
    }
});

---编辑

刚刚做了一个jquery插件,只是为了限制你检查的复选框的数量

(function( $ ){

  $.fn.LimitCheckableNumber = function( options ) {     
    var settings = $.extend( {
      'nr'         : 1,    
    }, options);
    return this.each(function() {        
         var $this=$(this),
             thisName=$this.attr('name');
        $this.on('click',function(){            
            var count=$(":checked[name='"+thisName+"']").length;           
            if(count>settings.nr){
            alert('You can check a maximum of '+settings.nr+' boxes. ');
                return false;
            };            
        });
    });
  };
})( jQuery );

那么你的问题是什么?你想实现什么?如果我没有弄错,你想确保atI编辑了底部的主要帖子,总结一下。那么你的问题是什么,你想实现什么?如果我没有弄错,你想确保atI编辑了底部的主要帖子,总结一下。不,没有-我的复选框的名称是武器[],因为我在数组中使用它们。现在更新了,因为我看到你的html带有
name=“武器[]”
谢谢=)这正是我想要的不,不是-我的复选框的名称是武器[],因为我在数组中使用它们。现在更新了,因为我看到你的html带有
name=“武器[]”
非常感谢=)这正是我想要的。你可以让它变得像你不想的那样通用。1)你不能只添加jQuery并假设这是可以的。2)你取消了定义多少复选框是可以的3)你取消了定义哪些复选框受影响的功能。我现在正在为此编写一个插件。等几分钟分钟。我知道它不是通用的。你可以让它像你习惯的那样通用。1)你不能只添加jQuery并假设这没问题。2)你取消了定义多少复选框的功能。3)你取消了定义哪些复选框受影响的功能。我现在正在为此编写一个插件。等几分钟。我知道它不是通用的。