2013-07-15 2 views
4

Я работаю на веб-сайт с несколькими формами радиокнопок, один из которых, как это:доступа значение кнопки радио через форму идентификатор

<form id = "configuration"> 
    <ul> 
     <li><input type="radio" name="configuration" id="0" value="0"/> GT Manual</li> 
     <li><input type="radio" name="configuration" id="1" value="1"/> GT Automatic</li> 
    </ul> 
</form> 

есть способ (JavaScript), что я могу получить доступ к значению переключателей напрямую, например

var value = document.getElementById("configuration").configuration.value; 

(здесь первой «конфигурация» является форма идентификатором, а вторая «конфигурация» это имя, а не пробегает по каждому элементу в форме, чтобы проверить, какую кнопку выбрана?

Спасибо !

+0

Вы должны использовать jquery для доступа к дочернему элементу по имени родителя. –

+0

Конечно, спасибо. Однако я искал javascript-метод. –

+0

использовать getElementsByName() вместо этого! – JamesN

ответ

1

нет, вы должны цикла по группе радио, чтобы узнать, какой из них выбран. .configuration является стандартным NodeList, а не «подкласс» с дополнительными функциями для работы с радио-групп.

+0

Хммммм, мне было просто интересно, так как в кнопках с тем же именем не может быть выбрано две кнопки, почему нет такой функции, которая бы сразу обращалась к выбранной кнопке? Я имею в виду, что реализация такой функции все равно может проходить через нодлист, но есть ли встроенная функция html/javascript, которая делает это? –

2

Получить его, как это ...

var radios = document.getElementsByName('configuration'); 
for (i = 0; i < radios.length; i++) { 
    if (radios[i].type == 'radio' && radios[i].checked) { 
     alert(radios[i].value); 
    } 
} 
+0

Существующий код уже получает группу радиостанций, ваша новая строка заменяет это, но не работает, так как они «' not '' s. Вы также должны избегать глобальных привязок. – Quentin

+0

Почему downvote .... это совершенно верно – KyleK

+0

Спасибо! Это совершенно верно, если вы удалите «тег». Мне просто интересно, потому что выбор переключателя является уникальным среди всех элементов, которые делят имя, поэтому может быть функция, которая напрямую проверяет кнопку. Но кажется маловероятным, что нет ... :( –

-1

Поскольку кнопки Радио являются частью группы с одинаковым именем, они идентифицируются отдельным идентификатором. Ответ от KyleK совершенно прав. Однако здесь еще один способ сделать это http://jsfiddle.net/9W76C/

if (document.getElementById('0').checked) { 
    alert("GT Manual"); 
} 

Я также хотел бы предложить использовать JQuery ...

+0

Это похоже на лучшее решение !!! –

-1

Если вы используете JQuery, вы можете сделать $('#configuration input:checkbox').val();, чтобы узнать, какой из них выбран

+0

Вопрос помечен 'javascript', который гласит: * Если тег для рамки/библиотеки также включен, чистый ответ на JavaScript ожидаемый *. Даже если это не так, ваш код получит значение ** первого флажка **, а не ** установленный переключатель ** – Quentin

Смежные вопросы