Javascript выбрал радио - PullRequest
       15

Javascript выбрал радио

13 голосов
/ 30 июня 2011

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

вот мой код.

<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
}

спасибо.

Ответы [ 7 ]

21 голосов
/ 30 июня 2011
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;
}

И идентификаторы элементов должны отличаться.

6 голосов
/ 30 июня 2011

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

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

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

4 голосов
/ 30 июня 2011
$('input[name=u_type]:checked').val()

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

1 голос
/ 30 июня 2011

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

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

0 голосов
/ 11 мая 2019

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

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

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

0 голосов
/ 30 июня 2011

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

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

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

0 голосов
/ 30 июня 2011

Ниже приведена реализация 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;
   }
  }
}
...