[JS] Blokada liczby 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
camillo
Posty: 4
Rejestracja: sob lis 26, 2005 10:19 am

[JS] Blokada liczby checkboxow

Post autor: camillo »

Jak powinien wygladac skrypt, ktory pozwala na zaznaczenie nie wiecej niz 3 checkboxow w formularzu? Chcialbym, zeby w sytuacji gdy uzytkownik zaznaczy 4 i wiecej wyswietlony zostal alert z odpowiednim komunikatem.
Znalazlem co prawda nastepujacy temat: http://forum.webinside.pl/viewtopic.php ... z+checkbox ,ale nie bardzo rozumiem przedstawione w nim rozwiazanie.
phpIker
Nowy
Nowy
Posty: 182
Rejestracja: śr lis 02, 2005 9:28 pm
Lokalizacja: Kraków

Re: [JS] Blokada liczby checkboxow

Post autor: phpIker »

Poprawiłem w nim trochę kod:

Kod: Zaznacz cały

<script type="text/javascript">

$ile = 3; // Ile ma być maksymalnie zaznaczonych checkboxów


$ile = $ile-1;
function zero(){
    $a=0;
}
function add(e){
    if (document.formD.photo[e].checked){
       $a++;
    }else{
        $a--;
    }
    if ($a>$ile){
        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;
        }
    }
}
</script>

<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>
Dodałem na początku zmienną %ile - podajesz w niej maksymalną ilość zaznaczonych checkboxów, jeżeli user zaznaczy więcej pól niż jest podane w zmiennej to reszta się blokuję dzięki czemu nie może zaznaczyć więcej.
Kumasz?
camillo
Posty: 4
Rejestracja: sob lis 26, 2005 10:19 am

Re: [JS] Blokada liczby checkboxow

Post autor: camillo »

chyba tak :) wielkie dzieki :D
camillo
Posty: 4
Rejestracja: sob lis 26, 2005 10:19 am

maly blad...

Post autor: camillo »

skrypt posiada maly blad :/
na pierwszy rzut oka wszystko jest ok, ale sprobujcie zrobic taka rzecz: zaznaczacie 2 checkboxy, odswiezacie strone i sie okazuje, ze jak sie zrobi tak pare razy, to mozna zaznaczyc w ten sposob nawet wszystkie pola :(
camillo
Posty: 4
Rejestracja: sob lis 26, 2005 10:19 am

Re: [JS] Blokada liczby checkboxow

Post autor: camillo »

EDIT:
Oki, wystarczy dodac na poczatku taka linijke:

Kod: Zaznacz cały

for (i = 0; i < formD.photolength; i++)
	formD.photo[i].checked = false ;
Odznacza ona wszystkie checkboxy w formularzu :)
ODPOWIEDZ