![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 516 Pomógł: 1 Dołączył: 25.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam funkcję która zaznacza mi grupowo checkboxy w formularzu. Niestety nie działa mi ona dobrze. mam zdefiniowany max 20 checkboxów, a zaznacza mi tylko pięć pierwszych. Nie umiem znaleźć błędu..... Proszę o pomoc w temacie. w formularzu element z checkboxem:
Ten post edytował krzesik 20.07.2024, 15:35:17 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
https://jsfiddle.net/u4dqkcyz/
Swoją drogą warunek w pętli jest niepoprawny, powinno być <=19 (nie =<19, ani nie =<20). -------------------- |
|
|
![]() ![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 516 Pomógł: 1 Dołączył: 25.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
Teraz mam tak:
jeśli kliknę na button "Zaznacz max 20" to zaznacza mi tylko dwa pierwsze, jeśli zaznaczę ręcznie do 20 to reszta "szarzeje - tak jak być powinno. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
NO przeciez tu
for (var z=0;z<=19;z++) { if (e[z].type=="checkbox") e[z].checked = b; } lecisz po dwudziestu perwszych elemetnach forma, ale tylko co ktorys jest cehckboxem wiec logicnze ze nie zaznacza ci sie 20 checkboxw. Albo z forma pobieraj tylko checkboxy, albo pobieraj wszystkie elementy forma ale wowczas lecisz WHILE a nie for i konczyc WHILE gdy 20 checkbox odznaczysz -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Ten fragment zwraca wszystkie elementy formularza. Jeśli więc na początku jest 18 elementów innych niż checkbox, to ominie je w pętli, a zaznaczy 2 ostatnie. Popróbuj używać metod querySelector, querySelectorAll i dodawać zdarzenia poprzez addEventListener. Obecnie kod wygląda jak z epoki IE6. -------------------- |
|
|
![]() ![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 516 Pomógł: 1 Dołączył: 25.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
OK, teraz wygląda to tak:
i już jest prawie dobrze, tylko. po kliknięciu w button zaznacza mi prawidłową ilość checkboxów, ale kolejne też są możliwe do zaznaczenia. Jeśli zaznaczę (w tym przypadku) 41 to następne są disabled. Docelowo powinno być MAx 40 i brak możliwości zaznaczaenia więcej. Poproszę o poradę. Dziękuję |
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
noto odpal deaktywacja() zaraz po tym jak zaznaczysz wszytkie 40 checkbox, wiec albo w funkcji checkboxesAll() albo zaraz za nia
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.07.2025 - 00:55 |