Comment définir l'option radio cochée onload avec jQuery?
Vous devez vérifier si aucune valeur par défaut n'est définie, puis définir une valeur par défaut
jquery
radio-button
Phill Pafford
la source
la source
Réponses:
Supposons que vous disposiez de boutons radio comme ceux-ci, par exemple:
Et vous vouliez vérifier celui avec une valeur de charge "Homme" si aucune radio n'est cochée:
la source
$radios.removeAttr('checked')
avant l'hélice. Cela confondra le navigateur et les valeurs publiées.Que diriez-vous d'une doublure?
la source
Celui-ci entraînera l'échec de form.reset ():
Mais celui-ci fonctionne:
la source
JQuery a en fait deux façons de définir l'état vérifié pour la radio et les cases à cocher et cela dépend si vous utilisez l'attribut value dans le balisage HTML ou non:
S'ils ont un attribut value:
S'ils n'ont pas d'attribut value:
Plus de détails
Dans le premier cas, nous spécifions le groupe de radio entier en utilisant le nom et demandons à JQuery de trouver la radio à sélectionner en utilisant la fonction val. La fonction val prend un tableau à 1 élément et trouve la radio avec la valeur correspondante, définissez son vérifié = vrai. D'autres portant le même nom seraient désélectionnés. Si aucune radio avec une valeur correspondante trouvée, tout sera désélectionné. S'il y a plusieurs radios avec le même nom et la même valeur, la dernière sera sélectionnée et d'autres seront désélectionnées.
Si vous n'utilisez pas d'attribut de valeur pour la radio, vous devez utiliser un ID unique pour sélectionner une radio particulière dans le groupe. Dans ce cas, vous devez utiliser la fonction prop pour définir la propriété "vérifié". Beaucoup de gens n'utilisent pas d'attribut value avec des cases à cocher, donc # 2 est plus applicable aux cases à cocher qu'aux radios. Notez également que comme les cases à cocher ne forment pas de groupe lorsqu'elles ont le même nom, vous pouvez le faire
$("[name=myCheckBox").prop("checked", true);
pour les cases à cocher.Vous pouvez jouer avec ce code ici: http://jsbin.com/OSULAtu/1/edit?html,output
la source
J'ai aimé la réponse de @Amc. J'ai trouvé que l'expression pouvait être condensée davantage pour ne pas utiliser un appel filter () (@chaiko a apparemment également remarqué cela). Aussi, prop () est le chemin à parcourir vs attr () pour jQuery v1.6 +, voir la documentation jQuery pour prop () pour les meilleures pratiques officielles sur le sujet.
Considérez les mêmes balises d'entrée de la réponse de @Paolo Bergantino.
Le one-liner mis à jour peut lire quelque chose comme:
la source
Je pense que vous pouvez supposer que ce nom est unique et que toutes les radios du groupe portent le même nom. Ensuite, vous pouvez utiliser le support jQuery comme ça:
Remarque: le passage de tableau est important.
Version conditionnée:
la source
$("*")
utilisiez correspondrait à tout, vous devez donc utiliser un type au bail$("input")
ou un ID. être idéal car le DOM a des appels natifs pour obtenir un élément par iddocument.querySelectorAll
fait tout le travail.$("input[name=gender]")
ou$("input[name=gender]:radio")
ou (pour les navigateurs modernes)$("input[name=gender][type=radio]")
Si vous voulez qu'il soit vraiment dynamique et sélectionnez la radio qui correspond aux données entrantes, cela fonctionne. Il utilise la valeur de genre des données transmises ou utilise la valeur par défaut.
la source
Solution JS native:
http://jsfiddle.net/jzQvH/75/
HTML:
la source
Et si vous souhaitez transmettre une valeur de votre modèle et sélectionner un bouton radio dans le groupe en charge en fonction de la valeur, utilisez:
Jquery:
Et le html:
la source
Je n'ai pas besoin de tout ça. Avec du HTML simple et ancien, vous pouvez réaliser ce que vous voulez. Si vous laissez la radio que vous voulez cochée par défaut comme ceci:
<input type='radio' name='gender' checked='true' value='Male'>
Lorsque la page se charge, elle sera vérifiée.
la source
la source
Voici un exemple avec les méthodes ci-dessus:
En javascript:
la source
Notez ce comportement lors de l'obtention des valeurs d'entrée radio:
Donc,
$('input[name="myRadio"]').val()
ne renvoie pas la valeur vérifiée de l'entrée radio, comme vous pouvez vous y attendre - il renvoie la valeur du premier bouton radio.la source
De esta forma Jquery obtiene solo el elemento vérifié
la source
// Si vous le faites sur javascript ou un framework comme backbone, vous rencontrerez beaucoup cela, vous pourriez avoir quelque chose comme ça
tandis que
ne fonctionnera pas,
volonté.
votre sélecteur peut être aussi recommandé par les autres gars ci-dessus.
la source
Cela fonctionne pour plusieurs boutons radio
la source