Eine Eingabe in einer Form namens "action" überschreibt die Aktionseigenschaft des Formulars. Ist das ein Fehler?

8

Ich habe ein Formular, das als

markiert ist %Vor%

Normalerweise könnte ich auf die Aktion des Formulars in Javascript zugreifen, indem ich auf das .action des Formularobjekts verweise, zum Beispiel

%Vor%

würde den Wert

zurückgeben %Vor%

Wenn ich jedoch als Komponente des Formulars ein Element namens "Aktion" habe, wird diese "Aktion" zum Inhalt der Aktion des Formulars. Das heißt, wenn das Formular-Markup beispielsweise

enthält %Vor%

Dann

%Vor%

gibt den Wert

zurück %Vor%

Nun habe ich herausgefunden, wie ich das umgehen kann: mit

%Vor%

Allerdings ist es eine böse Sache, die mich zu lange verwirrt hat. Ist das ein Fehler? Eine bekannte Frage der DOM-Verwaltung? Oder sollte ich mir einfach angewöhnen, .getAttribute () zu verwenden?

    
bugmagnet 07.08.2013, 10:12
quelle

1 Antwort

4

Ich würde das nicht als Fehler bezeichnen. Dieser Effekt tritt auf, weil Attribute mit element.attributename gelesen werden können und auf benannte Eingaben in einem Formular auf die gleiche Weise zugegriffen werden kann, formelement.inputname . Wenn es ein Attribut und eine Eingabe mit demselben Namen gibt, gibt es keine Garantie, welche verwendet wird. Es verhält sich wahrscheinlich in verschiedenen Browsern anders.

Ich benutze getAttribute persönlich, wenn ich ein bekanntes Attribut lese, das im Markup enthalten war oder mit setAttribute in JavaScript hinzugefügt wurde. Für dynamische Werte, wie zum Beispiel das Attribut checked eines Kontrollkästchens, verwende ich getAttribute nicht. Aber das ist wohl eher eine Frage der persönlichen Präferenz.

    
Wutz 07.08.2013, 10:28
quelle

Tags und Links