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
[js] blokada liczby zaznaczonych checkboxow
-
Wojciech Kocjan
- Zaczyna działać

- Posty: 427
- Rejestracja: sob gru 14, 2002 10:51 am
Re: [js] blokada liczby zaznaczonych checkboxow
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.
Re: [js] blokada liczby zaznaczonych checkboxow
ok, poradzilem sobei tak:
formularz HTML:
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):
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.
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>
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;
}
}
}
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.
