[JS] Zaznaczanie checkbox'ów

Odpowiedz Nowy wątek
2005-07-03 22:56

Rejestracja: 15 lat temu

Ostatnio: 9 lat temu

0

Mam takie coś:

<html>
<head>
<script language="JavaScript" type="text/javascript">
<!--
    function checkUncheckAll(theElement) {
     var theForm = theElement.form, z = 0;
     while (theForm[z].type == 'checkbox' && theForm[z].name != 'checkall') {
      theForm[z].checked = theElement.checked;
      z++;
     }
    }
// -->
</script>
</head>
<body>
<form method=post>
<input type="submit" value="Dodaj zaznaczone">
cos tam
<input type="checkbox" name="dow" value="1" id="dow1"><label for="dow1">Zaznacz</label><br>
jakis tekst
<input type="checkbox" name="dow" value="2" id="dow2"><label for="dow2">Zaznacz</label><br>
<input type="checkbox" name="checkall" onclick="checkUncheckAll(this)" id="sel"><label for="sel">Zaznacz/odznacz wszystko</label>
</form>
</body>
</html>

Nie działa w tym "Zaznacz/odznacz wszystko"
Jednak po wywaleniu przycisku z submitem działa
Co jest nie tak?


Pozostało 580 znaków

2005-07-03 23:07

Rejestracja: 16 lat temu

Ostatnio: 7 lat temu

0

pętla jest taka:
dopóki elementem jest checkbox i jego nazwa to nie "checkall" to go zaznacz tak jak element którego wywołałeś

czyli bierze pierwszy element, nie jest to checkbox więc przerywa pętle

powinno być raczej:

  function checkUncheckAll(theElement) {
    var theForm = theElement.form.elements;
    for(z=0;z<theForm.length;z++)
      if(theForm[z].type=='checkbox' && theForm[z].name != 'checkall'){
        theForm[z].checked = theElement.checked;
        z++;
      }
  }

Dwie zasady gwarantujące sukces:
1. Nigdy nie mów nikomu wszystkiego<span style="color: white">

Pozostało 580 znaków

2005-07-04 12:26

Rejestracja: 15 lat temu

Ostatnio: 9 lat temu

0

dzięki, ale musiałem jeszcze (z podanej przez ciebie funkcji) wywalić z++;
i już działa


Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0