Javascript 形成多个复选框,限制可选择的复选框数量

Javascript 形成多个复选框,限制可选择的复选框数量,javascript,php,html,forms,Javascript,Php,Html,Forms,我有一个表单的问题,我需要让用户选择最多2个复选框,然后它将不会让你选择另一个,直到你先取消选择一个我已经在这里工作 但是,当表单被选中时,我无法获取那些被勾选的值,因为复选框的名称是相同的,否则javascript将无法工作。因此,当我在名称上添加方括号,使其成为选项[]时,这打破了您可以选择的复选框的最大限制,即您可以选择全部4个。你可以在这个例子中看到 有人能想出办法来解决这个问题吗?我做错了什么 <form name="addtobasket50" id="addtobasket5

我有一个表单的问题,我需要让用户选择最多2个复选框,然后它将不会让你选择另一个,直到你先取消选择一个我已经在这里工作

但是,当表单被选中时,我无法获取那些被勾选的值,因为复选框的名称是相同的,否则javascript将无法工作。因此,当我在名称上添加方括号,使其成为选项[]时,这打破了您可以选择的复选框的最大限制,即您可以选择全部4个。你可以在这个例子中看到

有人能想出办法来解决这个问题吗?我做错了什么

<form name="addtobasket50" id="addtobasket50" method="post" enctype="multipart/form-data" action="cart.php">
<label for="12345" id="select12345" class="inpSelect"><input type="checkbox" name="option[]" value="12345" id="12345" class="bundleChk" /> Select</label>
<label for="12346" id="select12346" class="inpSelect"><input type="checkbox" name="option[]" value="12346" id="12346" class="bundleChk" /> Select</label>
<label for="12347" id="select12347" class="inpSelect"><input type="checkbox" name="option[]" value="12347" id="12347" class="bundleChk" /> Select</label>
<label for="12348" id="select12348" class="inpSelect"><input type="checkbox" name="option[]" value="12348" id="12348" class="bundleChk" /> Select</label>
</form>
<script type="text/javascript">
function checkboxlimit(checkgroup, limit, bundleID){
    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) {
            document.getElementById('cart'+bundleID).disabled = false;
        }
        if (checkedcount>limit){
            //var prodID = this.checked.value;
            //alert(document.getElementsByName("option").checked);

            this.checked=false
            }
        }
    }
}
<script>
<script type="text/javascript">
checkboxlimit(document.forms.addtobasket50.option[], 2,50)
<script>

挑选
挑选
挑选
挑选
函数checkboxlimit(checkgroup、limit、bundleID){
var checkgroup=checkgroup
风险限额=限额

对于(var i=0;i当使用点表示法访问属性时,属性名称必须是有效标识符,但
[]
不是有效标识符的一部分(括号用于索引数组和对象)。若要引用名称不是标识符的属性,必须使用数组表示法,属性名称为文字字符串,因此应为:

checkboxlimit(document.forms.addtobasket50["option[]"], 2,50);

嗯…首先,你没有在
标记中包含函数…@jsve javascript在head标记中的标记中,我只是从我包含的JSFIDLE中复制