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
}
спасибо.
Ответы
Ответ 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;
}
}
}