Martin Fleck: Durch alle Formular-Elemente loopen?

hallo,

wie kann ich denn mittels JavaScript durch alle Formularelemente (select, input, radios, ...) eines Formulares loopen? Vermisse eine length Eigenschaft von dem Objekt elements.

Mein Ansatz sieht derzeit so aus:
for (var i = 0; i < parent.frames["content"].document.forms.length; i++) {
    for (var j in parent.frames["content"].document.forms[i]) {
        document.writeln (j + "<br>");
    }
}

Danke.

--
Martin Fleck

  1. Hallo,

    Vermisse eine length Eigenschaft von dem Objekt elements.

    document.forms[0].elements.length gibt die Anzahl der Formularelemente im ersten Formular (Index 0) aus.

    MfG, Thomas

    1. document.forms[0].elements.length gibt die Anzahl der Formularelemente im ersten Formular (Index 0) aus.

      Ups, aber in der Objektreferenz (http://selfhtml.teamone.de/javascript/objekte/elements.htm) von SelfHTML ist es nicht aufgelistet.

      Danke.

      --
      Martin Fleck

      1. Hallo,

        Ups, aber in der Objektreferenz (http://selfhtml.teamone.de/javascript/objekte/elements.htm) von SelfHTML ist es nicht aufgelistet.

        Doch: http://selfhtml.teamone.de/javascript/objekte/elements.htm#allgemeines. Und darunter:

        document.forms[#].elements[#].Eigenschaft

        length ist eine Array-Eigenschaft.

        MfG, Thomas

  2. Hallo, Martin,

    wie kann ich denn mittels JavaScript durch alle Formularelemente (select, input, radios, ...) eines Formulares loopen? Vermisse eine length Eigenschaft von dem Objekt elements.

    Mein Ansatz sieht derzeit so aus:
    for (var i = 0; i < parent.frames["content"].document.forms.length; i++) {
        for (var j in parent.frames["content"].document.forms[i]) {
            document.writeln (j + "<br>");
        }
    }

    Hier ein praktisches Besispiel.

    Grüße, Sebastian

    ------------------------------

    function saveValue(element)
    {
    if ((element.type == "text") || (element.type == "password") || (element.type == "textarea") || (element.type == "radio"))
    {
    val = element.value;
    }
    else if (element.type.indexOf("select") != -1)
    {
    val = "";
    for(k=0;k<element.length;k++)
    if (element.options[k].selected)
    val += k+" ";
    }
    else if(element.type == "checkbox")
    {
    val = element.checked;
    }
    alert("Formular: " + element.form.name + "\nElement: " + element.name)
    // setCookie(cookie_prefix + "_" + element.form.name + "_" + element.name, val);
    }