Checkbox sınırlayıcı, kullanıcıyı seçim artışını artırmalarını ister

Kullanıcıların sadece 3 kutu seçmesine izin veren bir form var. Ancak, kullanıcı dördüncü kutuyu seçimlerini arttırmak isteyip istemediklerini sorduğunda ve evet'i seçtiğinde, kontrol etmelerine izin verilen kutu sayısının 5'e çıkacağını bildirmek isterim. Bu, sattığım ürünlerin bir listesi için.

Bunun nasıl yapılacağı hakkında bir fikri olan var mı? İşte örnek kodum:

    <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
Doz, ilk üç olmak zorunda mıdır yoksa üçü herhangi bir/rastgele sırayla kontrol edebilir mi?
katma yazar david, kaynak

1 cevap

bunu dene

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

İstediğiniz gibi çalışıp çalışmadığını bana bildirin

0
katma
Hayır, işe yaramadı. Daha kolay bir yöntemle gitmeye karar verdim, ancak, kimse buna bir çatlamak istiyorsa, çekinmeyin! Bu iyi bir meydan okuma!
katma yazar Tabetha Moe, kaynak