Im Allgemeinen wird davon ausgegangen, dass name wird immer durch id ersetzt . Das stimmt bis zu einem gewissen Grad, aber nicht für Formularfelder und Rahmennamen praktisch gesehen. Bei Formularelementen zum Beispiel ist die Name Attribut wird verwendet, um die Name-Wert-Paare, die an ein serverseitiges Programm gesendet werden und sollte nicht abgeschafft werden. Browser verwenden id nicht auf diese Weise . Um auf Nummer sicher zu gehen, können Sie die Name y id Attribute auf Formularelementen. Wir würden also das Folgende schreiben:
<form id="myForm" name="myForm">
<input type="text" id="userName" name="userName" />
</form>
Um die Kompatibilität zu gewährleisten, müssen passende Name y id Attributwerte, wenn beide definiert sind, ist eine gute Idee. Seien Sie jedoch vorsichtig - einige Tags, insbesondere Optionsschaltflächen, müssen nicht eindeutige Name Werte, sondern erfordern eindeutige id-Werte.
Auch hier sollte darauf hingewiesen werden, dass id ist nicht einfach ein Ersatz für Name ; sie haben einen anderen Zweck. Darüber hinaus sollten Sie den Ansatz des alten Stils nicht außer Acht lassen. Ein tiefer Blick in moderne Bibliotheken zeigt, dass dieser Syntaxstil zuweilen aus Gründen der Leistung und der Vereinfachung verwendet wird. Ihr Ziel sollte immer zugunsten der Kompatibilität sein.
Bei den meisten Elementen ist die Name Attribut wurde zugunsten des allgegenwärtigen id-Attributs veraltet. In einigen Fällen, insbesondere bei Formularfeldern ( <button>
, <input>
, <select>
y <textarea>
), die Name Attribut bleibt bestehen, da es weiterhin erforderlich ist, um das Name-Wert-Paar für die Formularübermittlung festzulegen. Außerdem stellen wir fest, dass einige Elemente, vor allem Frames und Links, weiterhin das Name Attribut, da es oft nützlich ist, um diese Elemente anhand ihres Namens abzurufen.
Es gibt eine klare Unterscheidung zwischen id y Name . Sehr oft, wenn Name weitergeht, können wir die Werte gleich setzen. Allerdings, id muss eindeutig sein, und Name in manchen Fällen auch nicht - denken Sie an Optionsfelder. Leider ist die Einzigartigkeit von id Werte zwar von der Auszeichnungsvalidierung erfasst werden, aber nicht so konsistent sind, wie sie sein sollten. Die CSS-Implementierung in Browsern formatiert Objekte, die ein id Wert; daher können wir Markup- oder Stilfehler, die unser JavaScript beeinträchtigen könnten, erst zur Laufzeit erkennen.
Dies stammt aus dem Buch JavaScript - Die vollständige Referenz von Thomas-Powell.
12 Stimmen
Es gibt einen sehr guten Thread zu diesem Thema unter stackoverflow.com/questions/7470268/html-eingabe-name-vs-id
0 Stimmen
Die umfassendste Antwort lautet Antwort von Farhan Shirgill Ansari (was nichts über seine Richtigkeit aussagt).