2011-10-27 71 views
0

我有一個允許用戶僅選擇3個框的表單。但是,當用戶選擇第四個框時,我想提示他們是否想要增加他們的選擇,如果他們選擇是,他們允許檢查的框數將增加到5. 這是爲了我賣的產品清單。複選框限制器提示用戶增加選擇增量

任何人都有任何想法如何做到這一點。下面是我的示例代碼:

<script type="text/javascript"> 

/*********************************************** 
* Limit number of checked checkboxes script- by JavaScript Kit (www.javascriptkit.com) 
* This notice must stay intact for usage 
* Visit JavaScript Kit at http://www.javascriptkit.com/ for this script and 100s more 
***********************************************/ 

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("Your box is full.") 
      this.checked=false 
      } 
     } 
    } 
} 

</script> 

<p>Select your favorite two countries below:</p> 

<form id="world" name="world"> 
<input type="checkbox" name="countries" /> USA<br /> 
<input type="checkbox" name="countries" /> Canada<br /> 
<input type="checkbox" name="countries" /> Japan<br /> 
<input type="checkbox" name="countries" /> China<br /> 
<input type="checkbox" name="countries" /> France<br /> 
</form> 

<script type="text/javascript"> 

//Syntax: checkboxlimit(checkbox_reference, limit) 
checkboxlimit(document.forms.world.countries, 2) 

</script> 
+0

劑量它必須是前三個或者他們可以檢查任何三個以任何/隨機順序? – david

回答

0

試試這個

function checkboxlimit(checkgroup, limit){ 

    var v_checkgroup = checkgroup; 
    var v_limit = limit; 

    for (var i=0; i < v_checkgroup.length; i++){ 

    v_checkgroup[i].onclick= function(){ 

    var checkedcount = 0; 

    for (var i=0; i < v_checkgroup.length; i++) 

    checkedcount += (v_checkgroup[i].checked)? 1 : 0 

    if (checkedcount > v_limit){ 
    var confirmIncrease = confirm("would like to increase you selection\r\nSelect yes to increase or\r\nCancle to remove"); 
    if(confirmIncrease){   

    // manualy set the limit 
      // v_limit = 5; 
      // set the limit based on number of checkboxs 
    v_limit = checkgroup.length; // rase the limit to the remaining 


    }else{ // uncheck if they dont wish to increase the limit 
    //alert("no worries") 
    this.checked=false 
    } 
    } } 
} 
} 

讓我知道,如果它是你想

+0

沒有,沒有工作。我決定採用更簡單的方法,但是,如果有人想對此採取措施,請隨意!這是一個很好的挑戰! –