MichaelR: Element.setAttribute -Frage

Hallo,

wenn ich per Javascript ein input Element erzeuge (document.createElement('input')) und möchte diesem dann Attribute zuweisen, konkret das "name" Attribute dann wird das schlichtweg gar nicht ausgeführt:

Elm = document.createElement('input');
Elm.setAttribute("name" , 'NameInput1');

Ich weiß, dass das name-Attribute in XHTML 1.1 normalerweise nicht mehr valide ist, aber innerhalb von <form>-Elementen ist laut XHTML Spezifikation das name-Attr. gültig.

Nur wie kann ich das auch setzen?
Über

Elm.name = 'NameInput1';

geht es auch nicht???

Danke für Tipps + Grüße
Michael

  1. Hi MichaelR,

    Hallo,

    wenn ich per Javascript ein input Element erzeuge (document.createElement('input')) und möchte diesem dann Attribute zuweisen, konkret das "name" Attribute dann wird das schlichtweg gar nicht ausgeführt:

    Elm = document.createElement('input');

    Naja, du hast es erzeugt, und nu?
    Wo wird es in den Elementbaum eingehängt?

    Elm.setAttribute("name" , 'NameInput1');

    Wo wird das Attribut erzeugt?
    Zugegeben, ich bin mir jetzt nicht sicher, aber ich denke, du solltest dir diese beiden Seiten noch mal genau durchlesen.
    http://selfhtml.teamone.de/javascript/objekte/document.htm#create_element
    http://selfhtml.teamone.de/javascript/objekte/document.htm#create_attribute
    Ich habe selbst noch nie mit dieser Technik gearbeitet, aber wenn ich mir die Beschreibungen so durchlese, fällt mir auf, daß du anscheinend willkürlich einige Schritte übersprungen hast.

    Ich weiß, dass das name-Attribute in XHTML 1.1 normalerweise nicht mehr valide ist, aber innerhalb von <form>-Elementen ist laut XHTML Spezifikation das name-Attr. gültig.

    Das dürfte in diesem Zusammenhang nicht relevant sein.

    Gruß

    Kurt

    --
    > Nein, ich beantworte keine Anfragen per e-mail.
    "Was noch zu leisten ist, das bedenke, was du schon geleistet hast, das vergiss."  (Marie von Ebner-Eschenbach; oest. Schriftstellerin; 1830-1916)
    http://elektro-dunzinger.at
    http://shop.elektro-dunzinger.at
    1. Hallo,

      Elm = document.createElement('input');

      Naja, du hast es erzeugt, und nu?
      Wo wird es in den Elementbaum eingehängt?

      Das hab' ich hier nicht mehr angeführt weil es ja nicht zum Problem gehört; DokumentenElement.appendChild(Elm); wobei DokumentElement das body Tag darstellt.

      Elm.setAttribute("name" , 'NameInput1');

      Wo wird das Attribut erzeugt?

      Laut Self-HTML reicht setAttribute() - denn wenn das Attribute nicht vorhanden ist wird es erzeugt. Außerdem get createAttribute() nicht bei allen Browsern.

      Ich weiß, dass das name-Attribute in XHTML 1.1 normalerweise nicht mehr valide ist, aber innerhalb von <form>-Elementen ist laut XHTML Spezifikation das name-Attr. gültig.

      Das dürfte in diesem Zusammenhang nicht relevant sein.

      Vielleicht schon, weil das normale input Element kein name-Attribute mehr hat?!

      Trotzdem danke + Grüße
      Michael

      1. hi,

        Elm = document.createElement('input');

        Naja, du hast es erzeugt, und nu?
        Wo wird es in den Elementbaum eingehängt?

        Das hab' ich hier nicht mehr angeführt weil es ja nicht zum Problem gehört; DokumentenElement.appendChild(Elm); wobei DokumentElement das body Tag darstellt.

        ein input-feld hat in XHTML direkt unterhalb von body doch gar nichts zu suchen.

        gruss,
        wahsaga

        1. Hallo,

          Das hab' ich hier nicht mehr angeführt weil es ja nicht zum Problem gehört; DokumentenElement.appendChild(Elm); wobei DokumentElement das body Tag darstellt.

          ein input-feld hat in XHTML direkt unterhalb von body doch gar nichts zu suchen.

          Natürlich ist außen ein <form> Tag drum!

          Grüße
          Michael

          1. hi,

            ein input-feld hat in XHTML direkt unterhalb von body doch gar nichts zu suchen.

            Natürlich ist außen ein <form> Tag drum!

            das widerspricht aber deiner zuvor gemachten aussage

            DokumentenElement.appendChild(Elm); wobei DokumentElement das body Tag darstellt.

            gruss,
            wahsaga

            1. Hi,

              ein input-feld hat in XHTML direkt unterhalb von body doch gar nichts zu suchen.

              Natürlich ist außen ein <form> Tag drum!

              das widerspricht aber deiner zuvor gemachten aussage

              DokumentenElement.appendChild(Elm); wobei DokumentElement das body Tag darstellt.

              OK - sorry, da habe ich den Schritt mit <form> vergessen. Es ändert aber nichts daran, dass das name-Attribut nicht gesetzt wird :-)

              Grüße
              MichaelR

      2. Hi Michael,

        [...]

        Ich habe keine Lust, mich innerhalb weniger Tage zum zweiten Male auf eine Aufgabe zu stürzen und dann feststellen zu müssen, dass das Problem durch etwas verursacht wurde, was der Fragesteller für nicht "erwähnenswert" hielt. [pref:t=69689&m=401559]
        Sinnlos vertane Zeit.
        Wenn du also Hilfe willst, solltest du in deinem eigenen Interesse auf Nachfragen eingehen und nötigenfalls auch Teile, die du nicht für relevant hältst, mitteilen.
        Sorry, aber ich habe keinen Bock darauf, dasselbe Szenario nochmals durchzulaufen.

        Gruß

        Kurt

        --
        > Nein, ich beantworte keine Anfragen per e-mail.
        "Unzufriedenheit ist der erste Schritt in der Entwicklung von Menschen und Voelkern."  (Oscar Wilde; ir. Dramatiker, Erzaehler u. Lyriker; 1854-1900)
        http://elektro-dunzinger.at
        http://shop.elektro-dunzinger.at