Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JS] zaznaczanie checkboxa
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
__ice
witam,
coś mi nie trybi - prosiłbym o wskazówki.

mam taki o to formularz:

Kod
<form method="post" name="forma">
<input type="checkbox" name="1"> Ilość: <input type="text" name="ilosc[1]" onclick="zaznacz(1);" /><br>
<input type="checkbox" name="2"> Ilość: <input type="text" name="ilosc[2]" onclick="zaznacz(2);" /><br>
<input type="checkbox" name="3"> Ilość: <input type="text" name="ilosc[3]" onclick="zaznacz(3);" /><br>
<input type="checkbox" name="4"> Ilość: <input type="text" name="ilosc[4]" onclick="zaznacz(4);" /><br>
...
</form>



na końcu wstawiłem wielokropek, ponieważ forma jest generowana przez php w zależności od wyników pobranych z bazy (pól może być 4, ale może być też ich 100).

chodzi o to, by po wpisaniu czegoś w polu
Kod
<input type="text" name="ilosc[4]" onclick="zaznacz();" />
był automatycznie zaznaczany
Kod
<input type="checkbox" name="4">
a automatycznie odznaczany, gdy input będzie pusty lub zostanie do niego wpisana wartość 0 (ta funkcja ma działać dla wszystkich pól).

oto funkcja zaznacz (mam tylko zaznaczanie po kliknięciu na edita, prosiłbym też o wskazówki jak resztę napisać):

Kod
function zaznacz(prod_id)
{
    document.getElementById(prod_id).checked = true;
}


tak więc prosiłbym o wskazówki, bo jakoś nie mogę nic wymyśleć ... będę mocno wdzięczny !

pozdrawiam,
Miłosz
devnul
funkcja zaznacz zaznacza element o podanym id, identyfikatorem nie może być sama liczba, ale nie tylko to jest powodem Twoich zmartwień, Ty zwyczajnie nie deklarujesz nigdzie ID dla pól checkbox
poprawny kod powinien wyglądać na przykład tak:
  1. <form method="post" name="forma">
  2. <input type="checkbox" name="1" id="checkbox_1"> Ilość: <input type="text" name="ilosc[1]" onclick="zaznacz('checkbox_1');" /><br>
  3. <input type="checkbox" name="2" id="checkbox_2"> Ilość: <input type="text" name="ilosc[2]" onclick="zaznacz('checkbox_2');" /><br>
  4. <input type="checkbox" name="3" id="checkbox_3"> Ilość: <input type="text" name="ilosc[3]" onclick="zaznacz('checkbox_3');" /><br>
  5. <input type="checkbox" name="4" id="checkbox_4"> Ilość: <input type="text" name="ilosc[4]" onclick="zaznacz('checkbox_4');" /><br>
  6. ...
  7. </form>

i powinno to chulać
__ice
ok, wszystko ok jest w tym momencie, ale ...

to połowa sukcesu.

teraz chciałbym żeby checkbox zaznaczał się po wpisaniu czegoś w inputa (to mam zrobione), ale żeby po usunięciu tekstu z inputa lub wpisanie do niego 0 się odznaczał (tego nie mam ogarniętego). Próbowałem z atrybutem inputa onChange -> oka, checkbox zaznacza się, gdy coś wpisuję do inputa, ale nie odznacza się, gdy z tegoż inputa wszystko usuwam ... i to jest w tej chwili główny problem sciana.gif
devnul
zrób coś takiego
  1. <input type="checkbox" name="1" id="checkbox_1"> Ilość: <input type="text" name="ilosc[1]" onclick="zaznacz(this,'checkbox_1');" />

Kod
function zaznacz(input_obj,prod_id)
{
if (input_obj.value=='' || input_obj.value=='0'){
    document.getElementById(prod_id).checked = false;
} else {
    document.getElementById(prod_id).checked = true;
}
}

i będzie smigać
__ice
Śmiga, dzięki !
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.