Как я могу узнать, какая радиокнопка выбрана с помощью jQuery? - PullRequest
2502 голосов
/ 27 февраля 2009

У меня есть две радиокнопки, и я хочу опубликовать значение выбранного. Как я могу получить значение с помощью jQuery?

Я могу получить их все так:

$("form :radio")

Как узнать, какой из них выбран?

Ответы [ 34 ]

3737 голосов
/ 27 февраля 2009

Чтобы получить значение выбранного radioName элемента формы с идентификатором myForm:

$('input[name=radioName]:checked', '#myForm').val()

Вот пример:

$('#myForm input').on('change', function() {
   alert($('input[name=radioName]:checked', '#myForm').val()); 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="myForm">
  <input type="radio" name="radioName" value="1" /> 1 <br />
  <input type="radio" name="radioName" value="2" /> 2 <br />
  <input type="radio" name="radioName" value="3" /> 3 <br />
</form>
388 голосов
/ 07 января 2010

Используйте это ..

$("#myform input[type='radio']:checked").val();
286 голосов
/ 09 февраля 2011

Если у вас уже есть ссылка на группу переключателей, например:

var myRadio = $("input[name=myRadio]");

Используйте функцию filter(), а не find(). (find() для поиска дочерних / дочерних элементов, тогда как filter() ищет элементы верхнего уровня в вашем выделении.)

var checkedValue = myRadio.filter(":checked").val();

Примечания: В этом ответе изначально исправлялся другой ответ, в котором было рекомендовано использовать find(), который, похоже, с тех пор изменился. find() все еще может быть полезен для ситуации, когда у вас уже была ссылка на элемент контейнера, но не на переключатели, например ::

var form = $("#mainForm");
...
var checkedValue = form.find("input[name=myRadio]:checked").val();
132 голосов
/ 31 марта 2011

Это должно работать:

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

Обратите внимание, что «» используется вокруг ввода: проверено, а не «», как у решения Питера Дж.

76 голосов
/ 27 февраля 2009

Вы можете использовать: отмеченный переключатель вместе с переключателем радио.

 $("form:radio:checked").val();
52 голосов
/ 31 августа 2013

Если вы хотите просто логическое значение, то есть, если оно установлено или нет, попробуйте это:

$("#Myradio").is(":checked")
51 голосов
/ 01 сентября 2011

Получить все радио:

var radios = jQuery("input[type='radio']");

Фильтр, чтобы получить тот, который проверен

radios.filter(":checked")
44 голосов
/ 21 сентября 2011

Другой вариант:

$('input[name=radioName]:checked').val()
30 голосов
/ 17 октября 2010
$("input:radio:checked").val();
23 голосов
/ 21 сентября 2012

Вот как я мог бы написать форму и обработать получение проверенного радио.

Используя форму myForm:

<form id='myForm'>
    <input type='radio' name='radio1' class='radio1' value='val1' />
    <input type='radio' name='radio1' class='radio1' value='val2' />
    ...
</form>

Получить значение из формы:

$('#myForm .radio1:checked').val();

Если вы не публикуете форму, я бы упростил ее, используя:

<input type='radio' class='radio1' value='val1' />
<input type='radio' class='radio1' value='val2' />

Тогда получение проверенного значения становится:

    $('.radio1:checked').val();

Наличие имени класса на входе позволяет мне легко вводить стили для ввода ...

...