Узнайте, проверен ли переключатель с помощью JQuery?

Я могу установить переключатель правильно, но я хочу настроить своего рода "прослушиватель", который активируется при проверке определенного переключателя.

Возьмите, например, следующий код:

$("#element").click(function()
{ 
    $('#radio_button').attr("checked", "checked");
});

он добавляет проверенный атрибут, и все хорошо, но как бы я пошел добавив предупреждение. Например, это всплывающее окно, когда установлен переключатель без помощи функции щелчка?

Ответ 1

$('#element').click(function() {
   if($('#radio_button').is(':checked')) { alert("it checked"); }
});

Ответ 2

Если у вас есть группа переключателей, имеющих один и тот же атрибут имени, а после отправки или какого-либо события вы хотите проверить, был ли отмечен один из этих переключателей, вы можете сделать это просто следующим кодом:

$(document).ready(function(){
  $('#submit_button').click(function() {
    if (!$("input[name='name']:checked").val()) {
       alert('Nothing is checked!');
        return false;
    }
    else {
      alert('One of the radio buttons is checked!');
    }
  });
});

Источник

jQuery API Ref

Ответ 3

В качестве решения Parag я сделал ошибку для меня, здесь мое решение (сочетающее Дэвида Хедлунда и Парага):

if (!$("input[name='name']").is(':checked')) {
   alert('Nothing is checked!');
}
else {
   alert('One of the radio buttons is checked!');
}

Это отлично сработало для меня!

Ответ 4

Вам нужно будет связать событие клика с этим флажком, так как событие изменения не работает в IE.

$('#radio_button').click(function(){
    // if ($(this).is(':checked')) alert('is checked'); 
    alert('check-checky-check was changed');
});

Теперь, когда вы программно меняете состояние, вам также нужно вызвать это событие:

$('#radio_button').attr("checked", "checked");
$('#radio_button').click();

Ответ 5

//Проверка класса

if($("input:radio[class='className']").is(":checked")) {
     //write your code         
}

//Проверить имя

if($("input:radio[name='Name']").is(":checked")) {
         //write your code         
}

//Проверка данных

if($("input:radio[data-name='value']").is(":checked")) {
         //write your code         
}

Ответ 6

Другой способ - использовать prop (jQuery >= 1.6):

$("input[type=radio]").click(function () {
    if($(this).prop("checked")) { alert("checked!"); }
});

Ответ 7

Решение будет простым. Поскольку вам просто нужны "слушатели", когда установлен определенный переключатель. Сделайте это: -

if($('#yourRadioButtonId').is(':checked')){ 
// Do your listener stuff here. 
}

Ответ 8

Если вам не нужна функция щелчка используйте функцию изменения JQuery

$('#radio_button :checked').live('change',function(){
alert('Something is checked.');
});

Это должен быть ответ, который вы ищете. если вы используете версию JQuery выше 1.9.1 попробуйте использовать, поскольку функция live была устарела.

Ответ 9

... Спасибо, ребята, все, что мне было нужно, это "значение" проверенной радиокнопки, где у каждого переключателя в наборе был другой идентификатор...

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

работает для меня...

Ответ 10

Работа со всеми типами кнопок и браузеров радиосвязи

if($('#radio_button_id')[0].checked) {
   alert("radiobutton checked")
}
else{
   alert("not checked");
}

Рабочий Jsfiddle здесь

Ответ 11

динамическая сгенерированная радиокамера Проверить значение радиоприемника

$("input:radio[name=radiobuttonname:checked").val();

При изменении динамической радио кнопки

$('input[name^="radioname"]').change(function () {if (this.value == 2) { }else{}});

Ответ 12

$('. radio-button-class-name'). is ('checked') не работает для меня, но следующий код работал хорошо:

    if(typeof $('.radio-button-class-name:checked').val() !== 'undefined'){
     // radio button is checked
    }

Ответ 13

попробуйте это

    if($('input[name="radiobutton"]:checked').length == 0) {
        alert("Radio buttons are not checked");
    }

Ответ 14

Попробуйте следующее:

alert($('#radiobutton')[0].checked)

Ответ 15

jQuery по-прежнему популярен, но если вы не хотите иметь никаких зависимостей, см. ниже. Короткая и понятная функция, чтобы узнать, установлен ли переключатель на ES-2015:

function getValueFromRadioButton( name ){
  return [...document.getElementsByName(name)]
         .reduce( (rez, btn) => (btn.checked ? btn.value : rez), null)
}

console.log( getValueFromRadioButton('payment') );
<div>  
  <input type="radio" name="payment" value="offline">
  <input type="radio" name="payment" value="online">
  <input type="radio" name="payment" value="part" checked>
  <input type="radio" name="payment" value="free">
</div>

Ответ 16

if($('#radio_button_id')[0].checked) {
   alert("r_b checked !")
}
else{
   alert("r_b not checked !");
}

этот код может решить проблему

Ответ 17

$("#radio_1").prop("checked", true);

Для версий jQuery до версии 1.6 используйте:

$("#radio_1").attr('checked', 'checked');