JQuery получить значение выбранного переключателя - PullRequest
477 голосов
/ 24 декабря 2011

Постановка проблемы проста.Мне нужно посмотреть, выбрал ли пользователь радиокнопку из группы радиостанций.Все переключатели в группе имеют одинаковый идентификатор.

Проблема в том, что у меня нет контроля над тем, как генерируется форма.Вот пример кода того, как выглядит управляющий код кнопки переключателя:

<input type="radio" name='s_2_1_6_0' value='Mail copy to my bill to address' id = "InvCopyRadio" onchange = 'SWESubmitForm(document.SWEForm2_0,s_4,"","1-DPWJJF")' style="height:20;width:25" tabindex=1997 >

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

<input type="radio" checked name='s_2_1_6_0' value='Mail copy to my bill to address' id = "InvCopyRadio" onchange = 'SWESubmitForm(document.SWEForm2_0,s_4,"","1-DPWJJF")' style="height:20;width:25" tabindex=1997 >

Кто-нибудь может мне помочь с кодом jQuery, который может помочь мне получить значение отмеченного переключателя?

Ответы [ 25 ]

939 голосов
/ 14 апреля 2014

Просто используйте.

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

Так легко.

303 голосов
/ 24 декабря 2011

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

Чтобы получить значение выбранного переключателявыберите его по имени с помощью фильтра :checked.

var selectedVal = "";
var selected = $("input[type='radio'][name='s_2_1_6_0']:checked");
if (selected.length > 0) {
    selectedVal = selected.val();
}

РЕДАКТИРОВАТЬ

Таким образом, вы не можете контролировать имена.В этом случае я бы сказал, что поместите все эти переключатели внутри элемента div с именем, скажем, radioDiv, а затем немного измените ваш селектор:

var selectedVal = "";
var selected = $("#radioDiv input[type='radio']:checked");
if (selected.length > 0) {
    selectedVal = selected.val();
}
71 голосов
/ 01 марта 2017

Самый простой способ получить значение выбранного переключателя заключается в следующем:

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

Между селектором не должно быть пробелов.

41 голосов
/ 24 декабря 2011
$("#radioID") // select the radio by its id
    .change(function(){ // bind a function to the change event
        if( $(this).is(":checked") ){ // check if the radio is checked
            var val = $(this).val(); // retrieve the value
        }
    });

Обязательно оберните это в функции готовности DOM ($(function(){...}); или $(document).ready(function(){...});).

36 голосов
/ 03 марта 2016
  1. В вашем коде jQuery просто ищет первый экземпляр ввода с именем q12_3, которое в этом случае имеет значение 1. Вы хотите ввод с именем q12_3, :checked.
$(function(){
    $("#submit").click(function() {     
        alert($("input[name=q12_3]:checked").val());
    });
});
  1. Обратите внимание, что приведенный выше код не совпадает с использованием .is(":checked"). JQuery's is() Функция возвращает логическое значение (true или false), а не элемент.
27 голосов
/ 05 ноября 2012
<input type="radio" class="radioBtnClass" name="numbers" value="1" />1<br/>
<input type="radio" class="radioBtnClass" name="numbers" value="2" />2<br/>
<input type="radio" class="radioBtnClass" name="numbers" value="3" />3<br/>

Это вернет проверенное значение переключателя.

if($("input[type='radio'].radioBtnClass").is(':checked')) {
    var card_type = $("input[type='radio'].radioBtnClass:checked").val();
    alert(card_type);
}
21 голосов
/ 08 ноября 2017
 $("input[name='gender']:checked").val()

для вложенных атрибутов

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

Не забудьте отдельные скобки для имени

17 голосов
/ 23 января 2017

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

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

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

radios.filter(":checked");

ИЛИ

Другой способ найти значение радиокнопки

var RadeoButtonStatusCheck = $('form input[type=radio]:checked').val();
16 голосов
/ 18 июня 2015

Чтобы получить значение выбранной радиокнопки, используйте RadioButtonName и идентификатор формы, содержащий радиокнопку.

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

ИЛИ только

$('form input[type=radio]:checked').val();
12 голосов
/ 04 августа 2015

Проверьте пример, он работает нормально

<div class="dtl_radio">
  Metal purity : 
    <label>
    <input type="radio" name="purityradio" class="gold_color" value="92" checked="">
    92 %
  </label>
    <label>
    <input type="radio" name="purityradio" class="gold_color" value="75">
    75 %
  </label>
    <label>
    <input type="radio" name="purityradio" class="gold_color" value="58.5">
    58.5 %
  </label>
    <label>
    <input type="radio" name="purityradio" class="gold_color" value="95">
    95 %
  </label>
    <label>
    <input type="radio" name="purityradio" class="gold_color" value="59">
    59 %
  </label>
    <label>
    <input type="radio" name="purityradio" class="gold_color" value="76">
    76 %
  </label>
    <label>
    <input type="radio" name="purityradio" class="gold_color" value="93">
    93 %
  </label>
   </div>

var check_value = $('.gold_color:checked').val();
...