Im Allgemeinen wird davon ausgegangen, dass der Name immer durch die ID ersetzt wird . Dies ist bis zu einem gewissen Grad wahr, aber nicht für , praktisch Formularfelder und Rahmennamen . Bei Formularelementen wird das name
Attribut beispielsweise verwendet, um die Name-Wert-Paare zu bestimmen, die an ein serverseitiges Programm gesendet werden sollen, und sollte nicht entfernt werden. Browsers do not use id in that manner
. Um auf der sicheren Seite zu sein, können Sie Namens- und ID-Attribute für Formularelemente verwenden. Also würden wir folgendes schreiben:
<form id="myForm" name="myForm">
<input type="text" id="userName" name="userName" />
</form>
Um die Kompatibilität sicherzustellen, ist es eine gute Idee, übereinstimmende Namens- und ID-Attributwerte zu haben, wenn beide definiert sind. Seien Sie jedoch vorsichtig - einige Tags, insbesondere Optionsfelder, müssen nicht eindeutige Namenswerte haben, erfordern jedoch eindeutige ID-Werte. Dies sollte wiederum darauf hinweisen, dass die ID nicht nur ein Ersatz für den Namen ist. Sie haben einen unterschiedlichen Zweck. Darüber hinaus sollten Sie den Ansatz des alten Stils nicht außer Acht lassen. Ein genauer Blick auf moderne Bibliotheken zeigt, dass ein solcher Syntaxstil manchmal aus Gründen der Leistung und Einfachheit verwendet wird. Ihr Ziel sollte immer die Kompatibilität sein.
In den meisten Elementen wurde das Namensattribut zugunsten des allgegenwärtigeren ID-Attributs verworfen. In einigen Fällen bilden sich jedoch insbesondere Felder (<button>
, <input>
, <select>
und <textarea>
), das Namensattribut am Leben, weil es erforderlich werden , weiterhin den Name-Wert - Paar für Formularübermittlung einzustellen. Außerdem stellen wir fest, dass einige Elemente, insbesondere Frames und Links, möglicherweise weiterhin das Namensattribut verwenden, da es häufig nützlich ist, um diese Elemente nach Namen abzurufen.
Es gibt eine klare Unterscheidung zwischen ID und Name. Sehr oft, wenn der Name weitergeht, können wir die Werte gleich einstellen. Die ID muss jedoch eindeutig sein, und der Name sollte in einigen Fällen nicht - denken Sie an Optionsfelder. Leider ist die Eindeutigkeit von ID-Werten, obwohl sie von der Markup-Validierung erfasst wird, nicht so konsistent, wie sie sein sollte. Durch die CSS-Implementierung in Browsern werden Objekte formatiert, die einen gemeinsamen ID-Wert haben. Daher werden Markup- oder Stilfehler, die sich auf unser JavaScript auswirken könnten, möglicherweise erst zur Laufzeit abgefangen.
Dies ist aus dem Buch JavaScript- entnommen. The Complete Reference by Thomas-Powell