308 votes

comment définir la radio option cochée onload jQuery

Comment définir la radio option cochée onload jQuery?

Besoin de vérifier si aucune valeur par défaut n'est définie, puis de définir une valeur par défaut

582voto

Paolo Bergantino Points 199336

Disons que vous avez eu des boutons radio comme celle-ci, par exemple:

<input type='radio' name='gender' value='Male'>
<input type='radio' name='gender' value='Female'>

Et vous vouliez vérifier l'un avec une valeur de "Mâle" onload si aucune radio est coché:

$(function() {
    var $radios = $('input:radio[name=gender]');
    if($radios.is(':checked') === false) {
        $radios.filter('[value=Male]').prop('checked', true);
    }
});

113voto

Euperia Points 772

Comment sur une seule ligne?

$('input:radio[name="gender"]').filter('[value="Male"]').attr('checked', true);

56voto

chaiko Points 281

Celui-ci va provoquer formulaire.reset() échec:

$('input:radio[name=gender][value=Male]').attr('checked', true);

Mais celui-ci fonctionne:

$('input:radio[name=gender][value=Male]').click();

40voto

ShitalShah Points 2213

JQuery a en fait deux façons de définir le statut vérifié pour la radio et les cases à cocher et cela dépend si vous êtes en utilisant la valeur de l'attribut dans la balise HTML ou pas:

Si ils ont de la valeur d'attribut:

$("[name=myRadio]").val(["myValue"]);

Si ils n'ont pas de valeur d'attribut:

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

Plus De Détails

Dans le premier cas, nous spécifier l'ensemble du groupe radio à l'aide du nom et de dire JQuery pour trouver une radio pour sélectionner à l'aide de fonction val. La fonction val prend 1-élément de tableau et trouve la radio avec la valeur correspondante, régler son checked=true. D'autres avec le même nom sera désactivée. Si pas de radio avec la valeur correspondante trouvé, alors tout sera désactivée. Si il y a plusieurs radios avec le même nom et la valeur de la dernière seraient sélectionnés et d'autres pourraient être désactivée.

Si vous n'êtes pas à l'aide de la valeur de l'attribut pour la radio, alors vous devez utiliser l'ID unique pour sélectionner la radio en particulier dans le groupe. Dans ce cas, vous devez utiliser prop fonction pour définir "checked" de la propriété. Beaucoup de gens n'utilisent pas la valeur d'un attribut avec des cases à cocher afin que #2 est plus applicable pour les cases à cocher puis les radios. Notons également que les cases ne forment pas de groupe quand ils ont le même nom, vous pouvez le faire $("[name=myCheckBox").prop("checked", true); pour les cases à cocher.

Vous pouvez jouer avec ce code là: http://jsbin.com/OSULAtu/1/edit?html,sortie

22voto

clayzermk1 Points 504

J'ai bien aimé la réponse de @Amc. J'ai trouvé l'expression pourrait être condensé en outre à ne pas utiliser un filtre() appel (@chaiko apparemment aussi remarqué cette). Aussi, prop() est le chemin à parcourir vs attr() de jQuery v1.6+, voir la documentation de jQuery pour prop() pour l'officiel des meilleures pratiques sur le sujet.

Pensez à la même balise d'entrée de @Paolo Bergantino de réponse.

<input type='radio' name='gender' value='Male'>
<input type='radio' name='gender' value='Female'>

La mise à jour du one-liner peut lire quelque chose comme:

$('input:radio[name="gender"][value="Male"]').prop('checked', true);

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