Ответ 1
Нет, атрибут идентификатора всегда должен быть уникальным. Если вы используете jQuery (похоже, что вы есть), вы можете выбрать его с помощью $('input[name=interview]');
.
Я заимствую/адаптирую эту простую форму html/javascript, настроенную для размещения некоторых данных в базе данных. Исходный код использует текстовые поля в форме, но я использую переключатели. Первые три шага ниже - оригинал, и мой вопрос возникает после... а именно, я предоставляю радиокнопкам один и тот же идентификатор... Надеюсь, это ясно...
Шаг 1. Пользователь вводит значение в форму с идентификатором "nick"
<tr>
<td><label>User</label></td>
<td><input class="text user" id="nick" type="text" MAXLENGTH="25" /></td>
</tr>
Шаг 2. Значение, связанное с id "nick" , присвоенное переменной с использованием id
var inputUser = $("#nick");
Шаг 3. Получение значения из переменной для вставки в базу данных...
if(inputUser.attr("value")
но если это две "радиокнопки", а не одно "текстовое" поле....
<td><label>Interview</label></td>
<td><input type="radio" name="interview" id="nick" value="pass" />Pass</td>
<td><input type="radio" name="interview" id="nick" value="fail" /> Fail</td>
Я предоставляю радиокнопкам один и тот же "id", чтобы он все еще был таким, когда я присваиваю значение переменной...
var inputUser = $("#nick");
чтобы какая бы кнопка не была выбрана, будет назначена найденная в id "nick" ?
Нет, атрибут идентификатора всегда должен быть уникальным. Если вы используете jQuery (похоже, что вы есть), вы можете выбрать его с помощью $('input[name=interview]');
.
Поскольку вы используете jQuery, вы можете легко получить значение выбранного переключателя с помощью : checked selector:
$("input[name=interview]:checked").val()
Вы определенно не должны указывать более одного элемента один и тот же ID (этот недопустимый HTML и приводить к запутанным ошибкам в вашем JavaScript), но даже если это сработало, это не поможет в этом случае, поскольку радиокнопки в качестве группы 't имеет выбранное значение: вам нужно определить, какой из них проверяется, а затем получить его значение, как показано выше. (Это не проблема при получении значения на веб-сервере, когда форма фактически отправлена, поскольку отправляется только значение из проверенного радио.)
Обратите внимание также, что в исходном коде, где вы сказали inputUser.attr("value")
, вы могли бы сказать inputUser.val()
.
Идентификатор атрибута уникален на всей странице. Для каждого переключателя вы должны иметь разные идентификаторы. Используйте нижеприведенный код, чтобы получить входное значение.
var inputUser=$('input:radio[name=interview]:checked').val();
Не повторяйте идентификаторы. Лучше всего использовать только один идентификатор на странице, поскольку он должен быть уникальным. Вы можете группировать радиокнопки с помощью атрибута name.
используйте $('input[name=interview]')
, чтобы получить значение.
Если вы хотите использовать чистый javascript, вы должны использовать.
document.querySelector('input[name=radio_btn_name]');
но он нуждается в обновленном браузере. Старые браузеры могут привести к неправильному.
Чтобы решить эту проблему, необходимо использовать библиотеку javascript (библиотека будет обрабатывать эту проблему). Для этого используйте следующее.
$('input[name=radio_btn_name]:checked').val();
вы должны назначить одно и то же имя, но с другим идентификатором, на input type=radio
, потому что это базовое свойство кнопки raido, для которой вам нужно выбрать только одно значение из кнопок радиосвязи.
но этот идентификатор не должен присваиваться другим элементам формы
id
, назначенный элементу, должен быть уникальным в документе. Итак, нет, вы не должны использовать один и тот же id
.
Вместо id="nick"
Вы можете использовать name="nick"
Или
class="nick"