Два переключателя имеют один идентификатор?

Я заимствую/адаптирую эту простую форму 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" ?

Ответ 1

Нет, атрибут идентификатора всегда должен быть уникальным. Если вы используете jQuery (похоже, что вы есть), вы можете выбрать его с помощью $('input[name=interview]');.

Ответ 2

Поскольку вы используете jQuery, вы можете легко получить значение выбранного переключателя с помощью : checked selector:

$("input[name=interview]:checked").val()

Вы определенно не должны указывать более одного элемента один и тот же ID (этот недопустимый HTML и приводить к запутанным ошибкам в вашем JavaScript), но даже если это сработало, это не поможет в этом случае, поскольку радиокнопки в качестве группы 't имеет выбранное значение: вам нужно определить, какой из них проверяется, а затем получить его значение, как показано выше. (Это не проблема при получении значения на веб-сервере, когда форма фактически отправлена, поскольку отправляется только значение из проверенного радио.)

Обратите внимание также, что в исходном коде, где вы сказали inputUser.attr("value"), вы могли бы сказать inputUser.val().

Ответ 3

Идентификатор атрибута уникален на всей странице. Для каждого переключателя вы должны иметь разные идентификаторы. Используйте нижеприведенный код, чтобы получить входное значение.

var inputUser=$('input:radio[name=interview]:checked').val();

Ответ 4

Не повторяйте идентификаторы. Лучше всего использовать только один идентификатор на странице, поскольку он должен быть уникальным. Вы можете группировать радиокнопки с помощью атрибута name.

используйте $('input[name=interview]'), чтобы получить значение.

Ответ 5

Если вы хотите использовать чистый javascript, вы должны использовать.

document.querySelector('input[name=radio_btn_name]');

но он нуждается в обновленном браузере. Старые браузеры могут привести к неправильному.

Чтобы решить эту проблему, необходимо использовать библиотеку javascript (библиотека будет обрабатывать эту проблему). Для этого используйте следующее.

$('input[name=radio_btn_name]:checked').val();

Ответ 6

вы должны назначить одно и то же имя, но с другим идентификатором, на input type=radio, потому что это базовое свойство кнопки raido, для которой вам нужно выбрать только одно значение из кнопок радиосвязи.

но этот идентификатор не должен присваиваться другим элементам формы

Ответ 7

id, назначенный элементу, должен быть уникальным в документе. Итак, нет, вы не должны использовать один и тот же id.

Ответ 8

Вместо id="nick"

Вы можете использовать name="nick"

Или

class="nick"