выбранное радио javascript

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

вот мой код.

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

спасибо.

6 ответов


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

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


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

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

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


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

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


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

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


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

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

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


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