787 votes

Comment sélectionner un bouton radio par défaut ?

J'ai quelques boutons radio et je veux que l'un d'entre eux soit sélectionné par défaut lors du chargement de la page. Comment puis-je faire cela ?

<input type="radio" name="imgsel"  value=""  />

1251voto

Framework Points 32799

Solution XHTML :

<input type="radio" name="imgsel" value="" checked="checked" />

Veuillez noter que la valeur réelle de checked n'a pas d'importance en réalité ; c'est juste une convention pour assigner "checked" . Plus important encore, les chaînes de caractères comme "true" ou "false" n'ont pas de signification particulière.

Si vous ne visez pas la conformité XHTML, vous pouvez simplifier le code à :

<input type="radio" name="imgsel" value="" checked>

2 votes

104 votes

Il est tout aussi important de connaître le piège que cela représente : Vous devez vous assurer qu'AUCUNE autre entrée dans ce groupe de boutons radio ne contient le balisage checked="false", ni "checked" par lui-même. Sinon, la dernière de ces entrées qui apparaît sur la page sera cochée. Seule l'entrée que vous voulez sélectionner par défaut doit avoir une balise contenant "checked".

3 votes

Si le problème persiste, vous devez ajouter l'attribut autocomplete="off" pour forcer le navigateur à définir la valeur par défaut.

115voto

mdm Points 7651

Utilisez l'attribut "checked".

<input type="radio" name="imgsel"  value="" checked /> 

ou

<input type="radio" name="imgsel"  value="" checked="checked" />

16 votes

<input type="radio" name="imgsel" value="" checked="false" /> entraîne également la vérification du bouton.

42 votes

Je suggère d'utiliser uniquement checked ou checked="checked" y avec véhémence éviter d'utiliser "vrai" car cela implique que "faux" fera le contraire... ce qui n'est pas le cas.

5 votes

Le premier choix est la bonne réponse. Les attributs booléens ne doivent pas avoir de valeurs.

79voto

discodane Points 1363

Cela ne répond pas exactement à la question, mais pour tous ceux qui utilisent AngularJS et tentent d'atteindre cet objectif, la réponse est légèrement différente. En fait, la réponse normale ne fonctionnera pas (en tout cas, elle ne l'a pas fait pour moi).

Votre code html sera assez semblable à celui d'un bouton radio normal :

<input type='radio' name='group' ng-model='mValue' value='first' />First
<input type='radio' name='group' ng-model='mValue' value='second' /> Second

Dans votre contrôleur, vous aurez déclaré l'élément mValue qui est associé aux boutons radio. Pour que l'une de ces cases d'option soit présélectionnée, attribuez l'attribut $scope associée au groupe à la valeur de l'entrée souhaitée :

$scope.mValue="second"

Ainsi, le "deuxième" bouton radio est sélectionné au chargement de la page.

EDIT : Depuis AngularJS 2.x

L'approche ci-dessus ne fonctionne pas si vous utilisez la version 2.x et supérieure. Utilisez plutôt ng-checked comme suit :

<input type='radio' name='gender' ng-model='genderValue' value='male' ng-checked='genderValue === male'/>Male
<input type='radio' name='gender' ng-model='genderValue' value='female' ng-checked='genderValue === female'/> Female

29voto

Gerben Jacobs Points 1312

Ajoutez cet attribut :

checked="checked"

18voto

Rohjay Points 71

Ils ont à peu près tout compris... comme pour une case à cocher, il suffit d'ajouter l'attribut checked="checked" comme ceci :

<input type="radio" checked="checked">

...et vous l'avez.

A la vôtre !

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