Обычно предполагается, что имя всегда заменяется идентификатором . В некоторой степени это верно, но не для полей формы и имен фреймов , если говорить практически. Например, с элементами формы name
атрибут используется для определения пар имя-значение, которые должны быть отправлены в программу на стороне сервера, и его не следует исключать. Browsers do not use id in that manner
, Чтобы быть в безопасности, вы можете использовать атрибуты name и id для элементов формы. Итак, мы бы написали следующее:
<form id="myForm" name="myForm">
<input type="text" id="userName" name="userName" />
</form>
Для обеспечения совместимости хорошей идеей будет наличие соответствующих значений атрибутов name и id, когда оба они определены. Однако будьте осторожны - некоторые теги, особенно переключатели, должны иметь неуникальные значения имен, но требовать уникальных значений идентификаторов. Еще раз, это должно ссылаться на то, что id - это не просто замена имени; они разные по назначению. Кроме того, не стоит сбрасывать со счетов старый стиль, глубокий взгляд на современные библиотеки показывает, что такой стиль синтаксиса иногда используется для повышения производительности и упрощения. Ваша цель всегда должна быть в пользу совместимости.
Теперь в большинстве элементов атрибут name устарел в пользу более вездесущего атрибута id. Однако, в некоторых случаях, в частности , образуют поля ( <button>
, <input>
, <select>
и <textarea>
), имя атрибута жизни, потому что по- прежнему требуется , чтобы установить пару имя-значение для представления формы. Кроме того, мы обнаружили, что некоторые элементы, в частности, фреймы и ссылки, могут продолжать использовать атрибут name, поскольку он часто полезен для извлечения этих элементов по имени.
Существует четкое различие между идентификатором и именем. Очень часто, когда имя продолжается, мы можем установить значения одинаковыми. Тем не менее, идентификатор должен быть уникальным, а имя в некоторых случаях не должно, думаю, переключатели. К сожалению, уникальность значений идентификаторов, хотя и улавливается проверкой разметки, не так последовательна, как это должно быть. Реализация CSS в браузерах будет стилизовать объекты, которые имеют значение id; таким образом, мы не можем отлавливать ошибки разметки или стиля, которые могут повлиять на наш JavaScript, до времени выполнения.
Это взято из книги JavaScript- The Complete Reference by Thomas-Powell