javascript - 只允许选中 2 个复选框

标签 javascript

我想说我很少使用 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>

对我来说它看起来很基本。这里没什么特别的。 但是,我的问题是,我试图通过名称 Weapon[] 找到复选框,这是我需要的,因为我将多个复选框作为数组的 Weapon[] 输出。 现在我的问题是,我将如何解决这个愚蠢的小错误。

总结一下: 我的问题是我的复选框被命名为 Weapon[] (name="weapon[]") 而不是 (name="weapon"),作为数组,因此 js 无法识别它。

最佳答案

您正在寻找这样的东西吗?

$(':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;
    }
});

http://jsfiddle.net/umqL3/2/

---编辑

刚刚制作了一个 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 );

Link

关于javascript - 只允许选中 2 个复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14967763/

相关文章:

JavaScript 性别验证

javascript - jQuery:使用多个数组来匹配确定 ChildNodes HTML 的类属性?

javascript - 正则表达式谜题 : How to replace dumb quotes with smart ones

javascript - 我如何使用 PHP 对包含引号的字符串进行编码以使其对于内联 'onclick' 是安全的?

javascript - 属性从 iframe 标记中剥离

javascript - 放置图标并使用 CSS 将其位置固定在动态宽度的输入控件中

javascript - 如何解释下面的例子?吊装?

javascript - 带有加号和减号图标的 jQuery 可扩展 div

javascript - JavaScript 中对象内部函数的命名约定?

Javascript 将事件 "mousedown"替换为 "spacebar"