Javascript 无法限制要选择的复选框的数量

Javascript 无法限制要选择的复选框的数量,javascript,php,jquery,html,checkbox,Javascript,Php,Jquery,Html,Checkbox,我正在使用foreach循环生成表单中的复选框。具体如下 <?php $index = 0; foreach($cameramen as $n_key){ ?> <div class="checkbox"> <label> <input type="checkbox" id="cameramen_<?php echo $index+1; ?>" name="cameramen" class="s

我正在使用foreach循环生成表单中的复选框。具体如下

<?php $index = 0;
foreach($cameramen as $n_key){ ?>
    <div class="checkbox">
        <label>
            <input type="checkbox" id="cameramen_<?php echo $index+1; ?>" name="cameramen" class="subscriber" value="<?php echo $index+1; ?>">

            <?php 
                echo $n_key->emplist3; 
                $index++;
            ?>

        </label>
    </div>
    <br/><br/>
<?php } ?>  
有人请帮我解决这个问题,我已经苦苦挣扎了几个小时。你可以试试这个:

$(文档).ready(函数(){
$(“.cb”)。在('click',函数(e){
var计数=0;
变量列表=$('.cb');
$('.cb')。每个(函数(i){
如果($(this).is(':checked')){
计数++;
}
});
如果(计数>2)
{
警报('不能选中超过2个复选框!');
$(this.prop('checked',false);
//返回false;
}否则{
返回true;
}
});
});  

复选框1

复选框2
复选框3
复选框4
虽然您应该使用
.prop()
,而不是
.attr()
,但您的代码应该按照我的理解工作。可能在DOM中的复选框可用之前绑定事件。你用ready handler包装吗?或委托以下@ntgCleaner提议的事件↓↓↓请尝试使用$(document)。在('change','input[name cameramen]',function(){…}`上,告诉我们它是如何工作的。我复制了您的代码,它似乎工作了!您确定所有输入元素都具有name属性“cameraman”吗?这里还有php。您在安装了php的web服务器上运行它,并使用正确的语法来使用它,如
http://localhost
而不是
文件://
?HTML源代码显示了什么,代码还是解析的php?@FalcoB yes name属性是所有人的摄影师。
 $("input[name=cameramen]").change(function(){
    var max= 2;
    console.log($("input[name=cameramen]:checked").length);
    if( $("input[name=cameramen]:checked").length == max ){
        $("input[name=cameramen]").attr('disabled', 'true');
        $("input[name=cameramen]:checked").removeAttr('disabled');
    }else{
         $("input[name=cameramen]").removeAttr('disabled');
    }
  });