Выясните, установлен ли переключатель с JQuery? - PullRequest
544 голосов
/ 16 февраля 2010

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

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

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

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

Ответы [ 16 ]

1001 голосов
/ 16 февраля 2010
$('#element').click(function() {
   if($('#radio_button').is(':checked')) { alert("it's checked"); }
});
142 голосов
/ 01 июля 2011

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

$(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

38 голосов
/ 07 июня 2013

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

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

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

31 голосов
/ 16 февраля 2010

Вам необходимо привязать событие click к флажку, так как событие изменения не работает в 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();
18 голосов
/ 06 января 2014

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

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         
}
9 голосов
/ 24 мая 2017

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

if($('#yourRadioButtonId').is(':checked')){ 
// Do your listener's stuff here. 
}
9 голосов
/ 19 сентября 2015

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

$("input[type=radio]").click(function () {
    if($(this).prop("checked")) { alert("checked!"); }
});
6 голосов
/ 02 мая 2013

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

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

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

5 голосов
/ 14 сентября 2013

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

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

у меня работает ...

4 голосов
/ 01 июня 2016

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

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

Рабочая Jsfiddle Здесь

...