| 

.NET C# Java Javascript Exception

3
Worin unterscheiden sich denn id und name bei Formularinputs? Nach welchen Regeln sollte ich diese Eigenschaften setzen?
News:
23.07.2009
rover 275 1 2 4
3 Antworten
9
Hallo,


id und name mögen auf den ersten Blick zwar ähnliche Attribute sein, dennoch haben sie nicht viel miteinander gemeinsam.

Das Universalattribut id (jedes HTML-Tag hat ein Attribut id) ist ein dateiweiter, eindeutiger Bezeichner eines Elementes. Dieser kann in JavaScript nach DOM-Syntax genutzt werden, um über die Methode getElementById() gezielt auf ein spezielles Element zuzugreifen. Zusätzlich kann es in Stylesheets für die Zuweisung von Individualformaten verwendet werden. Elemente mit definierter id können auch als Ziele für s.g. Sprunganker verwendet werden.

Für die Verwendung in Stylesheets, als Anker und in Javascript ist das id-Attribut casesensitiv, es muß also auf korrekte Groß- und Kleinschreibung geachtet werden.


Das Attribut name ist dagegen ein spezielles Attribut. Es gibt zwar mehrere HTML-tags die ein name-Attribut haben können (Meist Formularelemente wie input, select, button, etc.), aber eben nicht alle. Ein name-Attribut muß nicht eindeutig sein. Dies ist z.B. bei Radioboxen durchaus sinnvoll. Alle Elemente gleichen Namens können mit der Javascript-Methode GetElementsByName() als Objektliste abgerufen werden. Das name-Attribut ist gleichzeitig der Name unter dem der Wert eines Formularfeldes (input, button, select, etc.) in einem GET oder POST eines Formulars an das verarbeitende Script übertragen wird. So steht in einem PHP-Script z.B. der Wert von
<input name="test" value="Hallo" />
unter
$_GET['test']
zur Verfügung.

Während id also eine rein "interne" Rolle auf einer Seite spielt, kann der name eines Elementes durchaus auch nach "aussen" getragen werden.
27.07.2009
FalkP 3,3k 3 8
FalkP 3,3k 3 8
1
Kleine Anmerkung: id ist nicht nur eine Referenz um ein Element mit Javascript oder HTML-Anker zu referenzieren sondern auch für CSS und andere Sprachen die das DOM benutzen.
Ralf D. 08.09.2009
1
Als kleine Ergänzung auf deine Frage, was du denn nun tun sollst:

Ich halte es so, bei Formular-Elementen immer id und name gleich zu wählen.
Hierbei solltest Du natürlich darauf achten das der gewählte wert auch wirklich eindeutig ist (weil die ID ja nicht mehrfach vorkommen darf. Einige Browser drehen dann durch).

Ich finde es dann einfacher serverseitige Skripte und JavaScript gleichezeitig zu bearbeiten, da ich mir für die POST/GET Variablen keine seperaten Namen merken muß, sondern die gleichen benutzen kann wie beim GetElementById()
08.09.2009
MiW 1,0k 1 8
1
Außerdem benötigst Du das id-Attribut für "moderne" Formulare, die <fieldset> und <label> nutzen - der Wert für "for" bezieht sich immer auf die ID des betreffenden Formularfeldes:

<fieldset>
<label for="vorname">Vorname:</label>
<input type="text" id="vorname" name="vorname" value="" />
</fieldset>
10.09.2009
RomanB 351 5

Stelle deine Javascript-Frage jetzt!