2015-05-08 65 views
0

我有一個窗體,我需要讓用戶選擇最多2複選框的問題,然後它不會讓你選擇另一個,直到你先取消選擇一個我已經得到這個工作在這裏https://jsfiddle.net/Ly1h825h/窗體多個複選框,有多少可以選擇的限制

但是,當表單是選擇我不能夠得到的值被打勾,因爲複選框的名稱是相同的,否則JavaScript會不行。因此,當我在名稱上添加方括號以使其成爲選項[]時,可以選中複選框的最大限制,即可以選擇全部4.您可以在此示例中看到這些。 https://jsfiddle.net/9tnwz8j2/

任何人都可以看到一種方法來解決這個問題或什麼是做錯了嗎?

<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> 

在此先感謝 舒卡

+0

呃......有一件事,你不要沒有你的函數在'