643 votes

Découvrez si le bouton radio est coché avec JQuery ?

Je peux très bien définir un bouton radio comme étant coché, mais ce que je veux faire, c'est configurer une sorte d'écouteur qui s'active lorsqu'un certain bouton radio est coché.

Prenez, par exemple, le code suivant :

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

il ajoute un attribut vérifié et tout va bien, mais comment puis-je faire pour ajouter une alerte. Par exemple, qui s'affiche lorsque le bouton radio est coché sans l'aide de la fonction "click" ?

2 votes

2 votes

Monitoring when a radio button is unchecked stackoverflow.com/questions/5824639/

1197voto

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

1 votes

Bingo ! Merci David. Il faudrait donc que j'invoque une action (clic, etc.) pour afficher l'alerte ? Y a-t-il un moyen de le faire sans cliquer ?

0 votes

Eh bien, vous pourriez exécuter le is(':checked') Donc, si vous voulez afficher quelque chose au chargement de la page, selon qu'une case à cocher est cochée, par exemple, vous pouvez simplement mettre la même instruction if dans le chargement de la page.

4 votes

Cela ne résout pas le problème "sans l'aide de la fonction de clic", n'est-ce pas ?

178voto

Parag Points 1517

Si vous avez un groupe de boutons radio partageant le même attribut de nom et que, lors de l'envoi ou d'un événement quelconque, vous voulez vérifier si l'un de ces boutons radio a été coché, vous pouvez le faire simplement avec le code suivant :

$(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!');
    }
  });
});

Source :

Réf. API jQuery

0 votes

Cela n'a pas fonctionné pour moi. Si j'alerte($("input[@name='shipping_method']:checked").val()) ; cela me donne toujours la valeur même si le bouton radio n'est pas sélectionné.

1 votes

Remarque : si vous avez plusieurs formulaires avec des groupes de boutons radio portant le même nom, vous devez vous assurer de ne vérifier que ceux du formulaire qui sont soumis. Pour ce faire, vous pouvez utiliser la méthode find sur le formulaire : $('#myform').submit(function(event){ if (!$(this).find("input[name='name']:checked").val()) {

53voto

Patrick DaVader Points 343

Comme la solution de Parag a généré une erreur pour moi, voici ma solution (combinant celle de David Hedlund et celle de Parag) :

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

Cela a bien fonctionné pour moi !

38voto

Znarkus Points 5025

Vous devez lier l'événement de clic de la case à cocher, car l'événement de modification ne fonctionne pas dans IE.

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

Maintenant, lorsque vous changez l'état de manière programmatique, vous devez également déclencher cet événement :

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

28voto

Nanhe Kumar Points 2207

//Check through class

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

//Check through name

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

//Check through data

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X