Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]zaznacz wszystkie - nie działa
Forum PHP.pl > Forum > Przedszkole
mateuszpi
witam
mam kod który nie działa:
  1. <html>
  2. <head>
  3. <script type="text/javascript">
  4. function makeCheck(thisForm)
  5. {
  6. for (i = 0; i < thisForm.option[].length; i++)
  7. {
  8. thisForm.option[][i].checked=true
  9. }
  10. }
  11.  
  12. function makeUncheck(thisForm)
  13. {
  14. for (i = 0; i < thisForm.option[].length; i++)
  15. {
  16. thisForm.option[][i].checked=false
  17. }
  18. }
  19. </script>
  20. </head>
  21. <body>
  22.  
  23. <form name="Formularz">
  24. <input type="button" value="Zaznacz" onclick="makeCheck(this.form)">
  25. <input type="button" value="Odznacz" onclick="makeUncheck(this.form)">
  26. <br />
  27. <input type="checkbox" name="option[]">Pozycja 1<br />
  28. <input type="checkbox" name="option[]">Pozycja 2<br />
  29. <input type="checkbox" name="option[]">Pozycja 3<br />
  30. <input type="checkbox" name="option[]">Pozycja 4<br />
  31. </form>
  32.  
  33. </body>
  34. </html>


ale kiedy name=option to wszystko działą bez problemu. prosilbym o takie przerobienie aby działałą opcje zaznacz/odznacz właśnie przy założeniu że name="option[]"
mike
Jaka Java?!
Proszę poprawić tytuł wątku i nie wprowadzać czytelników w błąd.

Java to nie synonim czy skrót dla JavaScript. Kiedy Wy się tego ludzie nauczycie.
mateuszpi
nie denerwuj sie tak bardzo. zwykłe przeoczenie. sorki. poprawiłem.
golaod
Nie wiem czy na name można takie cuda niewidy robić polecam pracować na ID w końcu DOM do tego został stworzony.
@edit a odnosnie Twojego skryptu nie widzialem ze option to tablica dwu wymiarowa.
wookieb
Kod
for (i = 0; i < thisForm.elements.length; i++)
{
if(thisForm.elements[i].getAttribute('type').toLowerCase()=='checkbox')
{
thisForm.elements[i]=true; // badz false;
}
}
mateuszpi
dzięki
8_pasarzer_NOSTROMO
Podbijam pod temat bo mam identyczny wątek.

Gdzie wstawić części kodu, który napisał @wookieb ?
Wstawiam do javascript i nie działa mi.

Albo kto pomoże przerobić kod aby był jeden przycisk (Zaznacz wszystko / Odznacz wszystko)
Podaje kod, działający (IE,Fox,Chrome):

  1. <script LANGUAGE="JavaScript">
  2. function SetValues(Form, CheckBox, Value)
  3. {
  4. var objCheckBoxes = document.forms[Form].elements[CheckBox];
  5. var countCheckBoxes = objCheckBoxes.length;
  6. for(var i = 0; i < countCheckBoxes; i++)
  7. objCheckBoxes[i].checked = Value;
  8. }
  9.  
  10.  
  11. <form name="sports" method="post" action="insert.php">
  12. <table border = "1" cellpadding = "5">
  13. <tr>
  14. <td><input type='checkbox' name=boxes[] value='Baseball' />Basketball</td>
  15. <td><input type='checkbox' name=boxes[] value='Basketball' />Basketball</td>
  16. <td><input type='checkbox' name=boxes[] value='Bowling' />Bowling</td>
  17. </tr><tr>
  18. <td><input type='checkbox' name=boxes[] value='Rugby' />Rugby</td>
  19. <td><input type='checkbox' name=boxes[] value='Tennis' />Tennis</td>
  20. <td><input type='checkbox' name=boxes[] value='Valleyball' />Valleyball</td>
  21. </tr></table>
  22. <input type="button" value="Zaznacz wszystkie" onclick="SetValues('sports', 'boxes[]', true);">
  23. <input type="button" value="Odznacz wszystkie" onclick="SetValues('sports', 'boxes[]', false);">


Prośba o przerobienie na jeden przycisk (Zaznacz/Odznacz)

Ponawiam ostatni wątek

thek
Chyba najpopularniejszą formą jest posiadanie dodatkowego pola, które przyjmuje wartość true lub false (najczęściej jest to checkbox, często z display none) i klikanie jakiegoś guzika sprawdza jego stan, ustawia identyczny wszystkim checkboxom ( [type=checkbox] lub :checkbox ), po czym zmienia wartość owego dodatkowego pola na przeciwne. Tu masz coś w ten deseń -> http://www.wiseguysonly.com/2010/01/15/sel...es-with-jquery/
8_pasarzer_NOSTROMO
Podaje rozwiązanie dla potomnych :


  1. <script LANGUAGE="JavaScript">
  2.  
  3. function SetValues(Form, CheckBox)
  4. {
  5. var objCheckBoxes = document.forms[Form].elements[CheckBox];
  6. var countCheckBoxes = objCheckBoxes.length;
  7. for(var i = 0; i < countCheckBoxes; i++)
  8. {
  9. if(objCheckBoxes[i].checked)
  10. {
  11.  
  12. objCheckBoxes[i].checked = false;
  13.  
  14. document.getElementById("btn").value="Zaznacz wszystkie";
  15.  
  16. }else {
  17. objCheckBoxes[i].checked = true;
  18. document.getElementById("btn").value="Odznacz wszystkie";
  19. }
  20. }
  21. }
  22.  
  23.  
  24. <form name="sports" method="post" action="insert.php">
  25.  
  26. <input type='checkbox' name=boxes[] value='Baseball' />Basketball
  27. <input type='checkbox' name=boxes[] value='Basketball' />Basketball
  28. <input type='checkbox' name=boxes[] value='Bowling' />Bowling
  29.  
  30. <input type='checkbox' name=boxes[] value='Rugby' />Rugby
  31. <input type='checkbox' name=boxes[] value='Tennis' />Tennis
  32. <input type='checkbox' name=boxes[] value='Valleyball' />Valleyball
  33.  
  34. <input type="button" id="btn" value="Zaznacz wszystkie" onclick="SetValues('sports', 'boxes[]');" />
  35.  
  36.  
  37. </form>
  38.  


Pomógł Johny Walker.
Nie pomyliłem, pomógł john_doe.
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.