Question 1: donné
<input type="radio" name="foo" value="1" /> <input type="radio" name="foo" value="2" /> <input type="radio" name="foo" value="3" />
9 Réponses :
En supposant que le nom de la case à cocher est "FOO", pour obtenir l'élément radio sélectionné, vous pouvez utiliser: Ceci renvoie un tableau avec 1 élément, étant la valeur des éléments sélectionnés " . p> out simplement étendre un prototype de tableau et ajouter une méthode getfirst (). p> alors vous pourriez faire cela: P> var values = $$('input[name=foo]:checked'ââââââââââââââ).map(function(e) { return e.value; });
Pour une utilisation singulière, pourquoi pas simplement utiliser formel.getelement ("entrée [nom = foo]: cochée") code> - Pas besoin de transactions de tableau ici. Je prendrais cette approche et sa plus évolutive et sa boucle à travers plusieurs radios avec cela comme rappel.
J'ai utilisé $$ car l'OP n'avait que le nom de champ dans la question. Mais si l'élément de formulaire est disponible ou si l'identifiant est connu, nous pouvons également utiliser $ («formid»). GetElement ('entrée [nom = FOO]: cochée "). Valeur code>
Merci. J'ai utilisé $ ('formid'). GetElement ('entrée [nom = foo]: coché "). Valeur code> pour la radio (qui ne pouvait avoir qu'une valeur) et $$ (' Entrée #Formide [nom = FOO]: vérifié ') code> pour les cases.
Et pour obtenir un tableau des valeurs vérifiées, j'ai procédé à ce qui suit. Lmk s'il y a une manière plus élégante. var vals = []; $$ ('# Entrée formid [nom = ubers]: vérifié'). Carte (Fonction (E) {Vals.Push (E.Value);}); code>
@Philfreo Si vous prédéfinissez un tableau, vous devez utiliser chacun pour itérer au lieu de la carte. Carte a créé une matrice implicite et, étant donné que vous ne retournez rien de la fonction mappeuse (chaque valeur de cette matrice est indéfinie). de sorte que l'une ou l'autre de ces devait être meilleure: var vals = $$ ('# entrée formid [nom = ubers]: vérifié'). Carte (Fonction (E) {retour E.Value;}); code> ou avec prédéfinir un tableau: var vals = []; $$ ('# entrée formid [nom = ubers]: vérifié'). Chacune (fonction (E) {Vals.Push (E.Value);}); code>
Voici comment obtenir la valeur de la radio: assez facile .... p> p>
rien ne fonctionne pas dans Firefox 3.15.16 Sauf expression: strong> p>
var radio = $ ('adminform'). GetElements ("entrée [nom = 'Publié']") ") ; p>
Désolé pour l'anglais !!! p>
Le code ci-dessus a fonctionné bien à Firefox, mais c'est-à-dire que c'est pas l'aimé du tout. Après un peu de peau de peau, a eu lieu avec ce travail horrible.
Ajouter Onchange = "Togglechecked (this)" à chacun des radios, puis ajoutez cette fonction dans votre fichier JS P>
var selectFoo;
$$('input[name=foo]').each(function (el){
if (el.checked == true) {
selectFoo = el.value;
}
});
Pas besoin de
var value = $$('input[name=foo]:checked')[0].get('value');
La meilleure réponse est de weiqianglufromchina, mais cette erreur ceci doit être p> testé sur Firefox, chrome, explorateur . motools 1.2.4 / 1.3 p> acclamations p> p>
Je pense que le problème plus profond est qu'ils ne veulent pas être retourné un tableau, ce qui est ce qui est $$ ()
Il suffit d'utiliser celui-ci dernièrement dans MotooTools 1.11. J'utilise: assez longtemps mais travaillant. Essayé avec FF 3.x P> La version plus récente de MooTools peut utiliser une syntaxe plus courte comme les autres réponses fournies. P> P>
Cela fonctionne pour moi.
$$('input[name=foo]:checked').pick().get('value');
Un moyen facile pour obtenir la valeur de la radio vérifiée est la suivante: motools 1.4.5 - getElement () p> Obtient le premier élément descendant dont le nom de la balise correspond à la balise fournie. Les sélecteurs CSS peuvent également être passés. P>
blockQuote> mentionné précédemment
P> $$('input[name=foo]:checked').get('value');