Beiträge von Sierd

    Weil bei einem Element das Element selbst zurückgegeben wird. Und dazu steht kein length zur Verfügung.

    Nutze lieber querySelectorAll(), das liefert immer eine Collection:

    Code
    document.querySelector( '[name="Form1"]' ).querySelectorAll( '[type="checkbox"]' ).length;

    Das funktioniert, danke, aber jetzt meldet

    Code
    Anzahl=document.querySelector('[name="Form1"]').querySelectorAll('[type="checkbox"]').length;
    for (i=0; i<Anzahl; i++) {
      if (document.Form1['Wahl'][i].checked == true) { 
        Parameter=Parameter+"|"+document.Form1['Wahl'][i].value;
      }
    }

    ein document.Form1.Wahl[i] is undefined, wenn nur eine Checkbox in der Form ist. Bei mehreren ist alles ok.


    Stephan

    Hallo,


    in einer Form habe ich eine unterschiedliche Anzahl Checkboxen:

    Code
    <form name="Form1">
       <input type="checkbox" name="Wahl" value="4179038">
       <input type="checkbox" name="Wahl" value="2345676">
       ......
       <p><a href="javascript:box_aufrufen();"><img src="grafik\irgendwas.gif"></a></p>
    </form>


    Die Anzahl der Checkboxen lese ich so aus:

    Code
    <script type="text/javascript">
    function box_aufrufen(dummy) {
      ...
      alert("wie viel "+document.Form1['Wahl'].length); 
      ...
    }
    </script>

    Aber sobald nur eine Checkbox in der Form ist, melden document.Form1['Wahl'].length oder auch document.Form1.Wahl.length immer ein undefined.

    Sobald mehrere Checkboxen da sind, wird die korrekte Anzahl ausgegeben.

    Was mache ich falsch?


    Stephan