выбранное радио 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;
}
}
}