J'essaye de définir un bouton radio. Je veux le définir en utilisant la valeur ou l'identifiant.
C'est ce que j'ai essayé.
$('input:radio[name=cols]'+" #"+newcol).attr('checked',true);
newcol
est l'identifiant du bouton radio.
Peut-être qu'une petite modification s'impose.
Il existe deux ensembles de boîtes radio, l'une avec des cols et l'autre avec des lignes. Je vois donc l'intérêt de ne pas utiliser les identifiants. Ma faute. J'ai donc pour exemple:
<input type="radio" name="rows" class="listOfCols"
style="width: 50%; " value="Site"></input>
et
<input type="radio" name="cols" class="listOfCols"
style="width: 50%; " value="Site"></input>
avec l'identifiant supprimé, et je dois définir le bon.
jquery
radio-button
mike628
la source
la source
Réponses:
Votre sélecteur recherche le descendant d'un
input:radio[name=cols]
élément qui a l'id denewcol
(enfin la valeur de cette variable).Essayez plutôt ceci (puisque vous sélectionnez de toute façon par ID):
Voici une démo: http://jsfiddle.net/jasper/n8CdM/1/
De plus, à partir de jQuery 1.6, la méthode recommandée pour modifier une propriété est
.prop()
: http://api.jquery.com/propla source
prop
vsattr
.attr
obsolète pour les propriétés et ne fonctionne plus dans jQuery 2.0))J'ai trouvé la réponse ici:
https://web.archive.org/web/20160421163524/http://vijayt.com/Post/Set-RadioButton-value-using-jQuery
Fondamentalement, si vous souhaitez cocher un bouton radio, vous DEVEZ passer la valeur sous forme de tableau:
la source
Dans votre sélecteur, vous semblez tenter de récupérer un élément imbriqué de votre bouton radio avec un identifiant donné. Si vous souhaitez cocher un bouton radio, vous devez sélectionner ce bouton radio dans le sélecteur et pas autre chose:
Cela suppose que vous ayez le bouton radio suivant dans votre balisage:
Si votre bouton radio avait un identifiant:
vous pouvez directement utiliser un sélecteur d'identifiant:
la source
cols
nom, alors$('input:radio[name="cols"]').attr('checked', 'checked');
sélectionnera uniquement la dernière. Il exécutera le code sur chacun, mais chaque fois que vous définissez lachecked
propriété, l'élément précédemment défini est annulé. Voici une démo: jsfiddle.net/jasper/n8CdM/2Vous pouvez essayer le code suivant:
Cela définira l'attribut vérifié pour les colonnes radio et la valeur comme spécifié.
la source
...the most important concept to remember about the checked attribute is that it does not correspond to the checked property.
Source: api.jquery.com/attrPourquoi avez-vous besoin
'input:radio[name=cols]'
. Je ne connais pas votre html, mais en supposant que les identifiants sont uniques, vous pouvez simplement le faire.la source
Essaye ça:
J'ai eu des problèmes avec
attr("checked", true)
, donc j'ai tendance à utiliser ce qui précède à la place.De plus, si vous avez l'ID, vous n'avez pas besoin de ces autres éléments pour la sélection. Un identifiant est unique.
la source
checked="checked"
attribut et le navigateur l'affichera comme coché, puis sélectionnez B et la même chose se produira. Maintenant, lorsque vous sélectionnez à nouveau A, il aura déjà unchecked="checked"
attribut et rien ne changera. En tant qu'effet secondaire de ce B sera toujours sélectionné, pas A.Puisqu'il
newcol
s'agit de l'ID du bouton radio, vous pouvez simplement l'utiliser comme ci-dessous.la source
L'utilisation
.filter()
fonctionne également et est flexible pour l'id, la valeur, le nom:$('input[name="cols"]').filter("[value='Site']").attr('checked', true);
(vu sur ce blog )
la source
Combinaison des réponses précédentes:
la source
Vous pouvez simplement utiliser:
la source
La réponse choisie fonctionne dans ce cas.
Mais la question portait sur la recherche de l'élément en fonction du radiogroupe et de l'identifiant dynamique, et la réponse peut également laisser le bouton radio affiché inchangé.
Cette ligne sélectionne exactement ce qui a été demandé tout en affichant également le changement à l'écran.
la source