Подскажите пожалуйста..

Ребят, подскажите пожалуйста. Почему лучше использовать идентификаторы, отличающиеся от имени поля? Что будет если использовать одинаковые и name, и id

https://prnt.sc/gli03a

Я сама еще только учусь, но могу предположить, что дело в том, что id должен быть уникальным для всей страницы, а name нет. В принципе в начале теории для задания это упоминается.

Предположим у Вас на сайте есть форма где нужно последовательно заполнить поля, подобные друг другу. К примеру, список людей, которым нужно отправить какую-то рассылку. Для одного человека можно написать:

<input type="text" name="name" id="name">
<input type="text" name="address" id="address">

И сервер получит:

name - Иван
address - ivan@mail ru

Но для нескольких людей написать такие же поля нельзя (повторится id).

Можно ли сделать так? -

<input type="text" name="name-1" id="name-1">
<input type="text" name="address-1" id="address-1">
<input type="text" name="name-2" id="name-2">
<input type="text" name="address-2" id="address-2">
<input type="text" name="name-3" id="name-3">
<input type="text" name="address-3" id="address-3">

Мне это кажется неправильным. Во первых через input[name=“address”] можно стилизовать сразу все поля, да и количество адресатов может меняться - не прописывать же условия для всех возможных. А также отдельного id для каждого поля может вообще не быть, если не требуется привязывать к нему label и т.п.

Такое решение кажется более логичным:

<input type="text" name="name" id="name-1">
<input type="text" name="address" id="address-1">
<input type="text" name="name" id="name-2">
<input type="text" name="address" id="address-2">
<input type="text" name="name" id="name-3">
<input type="text" name="address" id="address-3">

Количество полей не ограничено и может настраиваться как-то дополнительно, возможно через JavaScript. И через него же скорее всего можно добавить полям id. В теории что-то такое говорилось:

Также идентификаторы используют в JavaScript для работы с полями.

Но во втором случае вам не придется задать полям дополнительные классы или перечислять все name в CSS. Достаточно input[name=“name”] и input[name=“address”].

А сервер получит:

name - Иван
address - ivan@mail ru

name - Борис
address - boris@mail ru

name - Вера
address - vera@mail ru

2 лайка

Спасибо за ответ

простите, не поняла фразы
" Во первых через input[name=“address”] можно стилизовать сразу все поля,"

может быть, должно быть
" Во первых через input[name=“address”] НЕВОЗможно стилизовать сразу все поля,"?
а то в первом случае совсем не поняла смысла :frowning:

простите, не поняла фразы
" Во первых через input[name=“address”] можно стилизовать сразу все поля,"

может быть, должно быть
" Во первых через input[name=“address”] НЕВОЗможно стилизовать сразу все поля,"?
а то в первом случае совсем не поняла смысла :frowning:

Давайте уточню: через input[name=“address”] можно стилизовать сразу все поля с аттрибутом name=“address”. Если нужно одинаково стилизовать абсолютно все поля ввода в форме, не зависимо от аттрибутов, то стоит использовать селектор input.