Checkbox limiter vraagt ​​de gebruiker om het selectietoename te verhogen

Ik heb een formulier waarmee gebruikers slechts drie vakken kunnen selecteren. Ik zou echter graag een prompt zien verschijnen wanneer de gebruiker het vierde vakje selecteert met de vraag of hij zijn selecties wil vergroten en als hij ja kiest, zal het aantal vakjes dat hij mag controleren toenemen tot 5. Dit is voor een lijst met producten die ik verkoop.

Iedereen heeft enig idee hoe dit te doen. Hier is mijn voorbeeldcode:

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

</script>


Select your favorite two countries below:

<form id="world" name="world"> <input type="checkbox" name="countries" /> USA
<input type="checkbox" name="countries" /> Canada
<input type="checkbox" name="countries" /> Japan
<input type="checkbox" name="countries" /> China
<input type="checkbox" name="countries" /> France
</form> <script type="text/javascript"> //Syntax: checkboxlimit(checkbox_reference, limit) checkboxlimit(document.forms.world.countries, 2) </script>
0
dosis moet het de eerste drie zijn of kunnen ze een van de drie in willekeurige of willekeurige volgorde controleren?
toegevoegd de auteur david, de bron

1 antwoord

probeer dit

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

laat het me weten als het werkt zoals je wilde

0
toegevoegd
Nee dat werkte niet. Ik heb besloten om met een eenvoudigere methode te gaan, echter, als iemand hier een scheur in wil maken, voel je dan vrij! Het is een goede uitdaging!
toegevoegd de auteur Tabetha Moe, de bron