2010-11-08 4 views
27

arbeite ich eine Flash-Anwendung in einer Webseite auf die Einbettung der Satay Methode:Ist es in Ordnung, wenn ein HTML-Element den gleichen [Namen] wie seine [ID] hat?

<object type="application/x-shockwave-flash" data="embeddy.swf" 
id="embeddy" name="embeddy"> 
    <param name="movie" value="embeddy.swf" /> 
</object>

Ich möchte Flash die richtige objectID in ExternalInterface.objectID, zu schaffen, das bedeutet, dass ich sowohl die name und id Attribute festlegen müssen für die object.

Normalerweise versuche ich Kollisionen mit Elementen in HTML zu vermeiden, aber ist es falsch, beide Attribute in diesem Fall auf den gleichen Wert zu setzen?

Was ist mit HTML-Formularen? Hat jemand das Gefühl, dass es sich lohnt, die Attribute name und id eines (n) (input | select | textarea) Elements auf denselben Wert zu setzen?

Antwort

46

Sie verwenden IDs für JavaScript-Manipulation.

Sie verwenden Namen für die Formularfeldübertragung.

Die beiden sind nicht verwandt. Das Einstellen beider auf den gleichen Wert ist OK, aber es ist nicht erforderlich.

+9

IDs sollten auch eindeutig sein, aber Namen müssen nicht eindeutig sein. – jordanbtucker

+0

IDA werden auch für die Verknüpfung von Fragment-ID verwendet, und für das Styling über ihre Verwendung in CSS-Selektoren –

+0

IDs sind für die einfache JavaScript-Manipulation, aber es ist möglich, einige Dinge mit Namen mit JavaScript zu tun. –

0

Ich mache es die ganze Zeit (vor allem, weil einige Browser in der Vergangenheit - IE in den Sinn kommt - verwenden Sie nur den Namen Parameter beim Senden der Formulardaten). Die Verwendung von IDs macht den Formularvalidierungscode viel sauberer, IMO.

+3

Browser sollen * nur * den Namensparameter für das Senden von Formulardaten verwenden – Gareth

+1

Obwohl Sie nicht den gleichen 'name' und' id' Wert für verwenden würden Optionsfelder oder Kontrollkästchen, die Mitglieder einer Gruppe sind, da Gruppen von Optionsfeldern/Kontrollkästchen von ihnen alle mit dem gleichen Namen identifiziert werden. –

1

Yup! Das ist absolut in Ordnung.

ID ist die clientseitige Kennung (für, wenn ein Element in dem DOM Nachschlagen)

Name während Formularübermittlung zu POST/GET den Werten verwendet wird.

Außerhalb eines Eingabeelements sollte Name überhaupt nicht verwendet werden. Durch Eingabe von id können die Elemente jedoch konsistent im DOM nachgeschlagen werden.

5

Nicht nur ist es in Ordnung, es ist durchaus üblich.

IDs werden für Javascript (und in geringerem Maße für CSS) verwendet.

Namen werden für Formularfelder verwendet, um den Namen für den übermittelten Wert anzugeben.

Allerdings haben ältere Versionen von IE bekannte Fehler, was bedeutet, dass Sie fast gezwungen sind, sie in vielen Fällen gleich zu spezifizieren. (vorausgesetzt, dass Sie diese älteren Versionen von IE natürlich unterstützen wollen!)

Die eine Sache zu beachten ist, dass diese IDs eindeutig sein müssen. Wenn Sie also Optionsfelder haben, die alle den gleichen Namen haben, können Sie nicht für alle die gleiche ID verwenden. In den meisten anderen Fällen ist es jedoch in Ordnung, sie gleich zu haben.

1

ich gerade entdeckt, die HTML4 answer to my question:

Die ID und Name Attribute den gleichen Namensraum teilen. Dies bedeutet, dass sie nicht beide einen Anker mit demselben Namen im selben Dokument definieren können.Es ist zulässig, beide Attribute zu verwenden, um die eindeutige Kennung eines Elements für die folgenden Elemente anzugeben: A, APPLET, FORM, FRAME, IFRAME, IMG, and MAP. Wenn beide Attribute für ein einzelnes Element verwendet werden, müssen ihre Werte identisch sein.

Jetzt gehe ich davon aus, dass die Regel sollte auf applet und iframe angelegt wird, durch die Erweiterung, Arbeit für object und embed Tags. Auf jeden Fall hat die Verwendung eines identischen Namens & id bisher keine ungewöhnlichen Ereignisse hervorgebracht.

Verwandte Themen