2011-10-27 13 views
0

私はユーザーが3つのボックスのみを選択できるフォームを持っています。しかし、ユーザーが選択肢を増やしたいかどうかを尋ねる4番目のボックスを選択したときにプロンプ​​トが表示され、「はい」を選択すると、チェックできるボックスの数が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

用量を望んでいたとして働くなら、私に知らせてみてください、それは最初の3であることを持っているか、彼らは3のいずれかを確認することができます任意の/ランダムな順序で? – 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

これは機能しませんでした。私はもっ​​と簡単な方法をとることに決めましたが、誰かがこれに亀裂を入れたいと思ったら、気軽に!それは良い挑戦だ! –

関連する問題