Атрибут name
- это нотация для ссылки на определенные элементы в рамках веб-страницы через не-DOM Javascript:
document.forms['your_form'].elements['aa']
Атрибут id
для элемента должен быть установлен с тем же значением, чтобы сработало следующее:
document.getElementById('aa')
Насколько я понимаю, когда Netscape создавал Javascript, он использовал атрибут name
. Спецификация HTML, однако, решила использовать id
, но сохранила name
для обратной совместимости. IME, использование атрибута name
было необходимо для поддержки Internet Explorer 6, поскольку движок JavaScript в IE не считывал атрибут id
- только name
, хотя оба были определены.
... можно было бы избежать использования этого атрибута с полями ввода "текстового" типа (если нет стилей или целей написания сценариев)?
Если у вас нет javascript-кода, прикрепленного к текстовым полям, да - они будут ненужными.