Подтвердить что ты не робот

Javascript selected radio

Я хочу проверить, что такое выбранный радиовход.

вот мой код.

<input name="u_type" type="radio" value="staff" id="u_type" checked="checked" /> Staff
<input name="u_type" type="radio" value="admin" id="u_type" /> Admin
<input id="add_user" name="add_user" type="button" onclick="addUser();"  value="Add" class="submitButton admin_add" />

function addUser()
{
//how to check what is the selected radio input
}

спасибо.

4b9b3361

Ответ 1

function addUser() {
    //how to check what is the selected radio input
    alert(getCheckedRadioValue('u_type'));
}

function getCheckedRadioValue(name) {
    var elements = document.getElementsByName(name);

    for (var i=0, len=elements.length; i<len; ++i)
        if (elements[i].checked) return elements[i].value;
}

И идентификаторы элементов должны быть разными.

Ответ 2

Чтобы получить значение зарегистрированного переключателя без jQuery:

var radios = document.getElementsByName("u_type");
for(var i = 0; i < radios.length; i++) {
    if(radios[i].checked) selectedValue = radios[i].value;   
}

(предполагая, что selectedValue - переменная, объявленная в другом месте)

Ответ 3

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

предоставит вам значение выбранного параметра, которое вы, конечно же, можете присвоить переменной. Из-за предостережения я должен также указать, что это jquery, удобная библиотека javascript для упрощения DOM-манипуляций и отличной совместимости с несколькими браузерами. Здесь можно найти здесь.

Ответ 4

В качестве альтернативы предложению kmb385 вы можете обернуть свои входы в форме и убедиться, что все имена ввода различны (у вас есть два имени u_type).

Затем вы можете получить доступ к входам как document.formname.inputname.checked, который вернет true или false.

Ответ 5

У вас не должно быть двух радиоэлементов с одним и тем же идентификатором. Вам нужно изменить один из идентификаторов, затем проверьте оба переключателя:

if(document.getElementById("u_type").checked == true)
{
   //do something
}

Я бы рекомендовал использовать jquery для этого вместо встроенного js.

Ответ 6

Я знаю, что это старый вопрос, но приведенные ответы кажутся слишком сложными.

Как указывалось ранее, у вас не должно быть двух элементов с одинаковым идентификатором. Это нарушает спецификации HTML. Просто удалите атрибуты id или задайте для них два разных значения. Затем просто используйте это, чтобы получить проверенное значение:

document.querySelector("input[type='radio'][name='u_type']:checked").value

Ответ 7

Ниже приведена реализация jQuery для получения значения переключателя

$("#u_type").click(function() {
var value = $(this).val();
});

Если вы хотите использовать javascript, то:

function get_radio_value()
{
for (var i=0; i < document.form.u_type.length; i++)
{
   if (document.form.u_type[i].checked)
   {
   var val = document.form.u_type[i].value;
   }
  }
}