[js] blokada liczby zaznaczonych checkboxow

HTML to podstawy w dziedzinie tworzenia stron WWW, Style CSS warto opanować, bowiem za ich pomocą można dostosować odpowiednio wygląd swojej witryny WWW. Zagłębiamy się dalej i udostępniamy w tym forum możliwość zadawania pytań o JavaScript.
ODPOWIEDZ
the_foe
Przelotem
Przelotem
Posty: 295
Rejestracja: pt sty 31, 2003 12:53 pm
Lokalizacja: Wałbrzych
Kontakt:

[js] blokada liczby zaznaczonych checkboxow

Post autor: the_foe »

Mam iles tam checkboxow. Chce zeby po nacisinieciu np. 3 niemozliwe bylo nacisineiecie juz 4. Nie moze byc wlaczene disabled, bo chodzi o to ze jak odznaczy jedno, moze oznaczyc inne, do czasi kiedy nie ma zaznaczonych trzech checkboxow.
Kluczem do rozwiazania sprawy jest liczenie ile w danej chwili jest zaznaczonych checkboxow. Niestety nei potrafie zlozyc takowej funkcji
Wojciech Kocjan
Zaczyna działać
Zaczyna działać
Posty: 427
Rejestracja: sob gru 14, 2002 10:51 am

Re: [js] blokada liczby zaznaczonych checkboxow

Post autor: Wojciech Kocjan »

Stworz sobie zmienna tymczasowa w JS, z poczatkowa wartoscia 0. Nastepnie do kazdego checkboxa dopisz funkcje, ktora po zaznaczeniu bedzie zwiekszala ta zmienna o 1, jak i zmniejszala, po odznaczeniu. Dalej juz chyba prosto.
the_foe
Przelotem
Przelotem
Posty: 295
Rejestracja: pt sty 31, 2003 12:53 pm
Lokalizacja: Wałbrzych
Kontakt:

Re: [js] blokada liczby zaznaczonych checkboxow

Post autor: the_foe »

ok, poradzilem sobei tak:

formularz HTML:

Kod: Zaznacz cały

<body onload='zero()'>
<form name="formD" action="jakis tam" method="jakis tam">
<input type="checkbox" onclick="add('0')" name="photo" value="jakas wartosc" />
<input type="checkbox" onclick="add('1')" name="photo" value="jakas wartosc" />
<input type="checkbox" onclick="add('2')" name="photo" value="jakas wartosc" />
<input type="checkbox" onclick="add('3')" name="photo" value="jakas wartosc" />
<input type="checkbox" onclick="add('4')" name="photo" value="jakas wartosc" />
<input type="checkbox" onclick="add('5')" name="photo" value="jakas wartosc" />
<input type="checkbox" onclick="add('6')" name="photo" value="jakas wartosc" />
<input type="checkbox" onclick="add('7')" name="photo" value="jakas wartosc" />
<form>
funkcje js (dla trzech zaznaczen, dynamiczna wartosc mac. zaznaczonych cb nei jest mi potrzebna bo korektuje je z PHP, jak ktos chce miec to z czytego js moze pzrerobic funcje na dwa parametry):

Kod: Zaznacz cały

function zero(){
    $a=0;
}
function add(e){
    if (document.formD.photo[e].checked){
       $a++;
    }else{
        $a--;
    }
    if ($a>2){
        var count;
        for (count = 0; count < document.formD.photo.length; count++)
        {
            if (document.formD.photo[count].checked){
               document.formD.photo[count].disabled=false;
            }else{
               document.formD.photo[count].disabled=true;}
        }
    }else{
        var count;
        for (count = 0; count < document.formD.photo.length; count++)
        {
            document.formD.photo[count].disabled=false;
        }
    }
}
Trzeba nadmienic ze bedzie tu pewein problem. Aby przeslala przegladarka wsztytkie wartosci pola checkbox, musi on miec pusta klamre [ ] , w tym przypadku nazwa kazdego z pol powinna brzmiec "photo[]"
Inaczej PHP nie odczyta nam photo jako tablice, a tylko jedna wartosc (pierwsza albo ostatnia - nei pamietam).
Uzywajac php, jednak, mozemy dynamicznie utworzyc tyle pol HIDDEN ile mamy maksymalnie zanaczyc checkboxow, potem zas z js otpowienio nadawac im wartosci po zaznaczaniu.
ODPOWIEDZ