9
votes

Motools - Comment obtenir la valeur du type d'entrée radio sélectionné, de son nom

Question 1: donné

<input type="radio" name="foo" value="1" />
<input type="radio" name="foo" value="2" />
<input type="radio" name="foo" value="3" />


0 commentaires

9 Réponses :


18
votes

En supposant que le nom de la case à cocher est "FOO", pour obtenir l'élément radio sélectionné, vous pouvez utiliser: xxx pré>

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> xxx pré>

alors vous pourriez faire cela: P>

var values = $$('input[name=foo]:checked'​​​​​​​​​​​​​​).map(function(e) { return e.value; });


5 commentaires

Pour une utilisation singulière, pourquoi pas simplement utiliser formel.getelement ("entrée [nom = foo]: cochée") - 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


Merci. J'ai utilisé $ ('formid'). GetElement ('entrée [nom = foo]: coché "). Valeur pour la radio (qui ne pouvait avoir qu'une valeur) et $$ (' Entrée #Formide [nom = FOO]: vérifié ') 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);});


@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;}); ou avec prédéfinir un tableau: var vals = []; $$ ('# entrée formid [nom = ubers]: vérifié'). Chacune (fonction (E) {Vals.Push (E.Value);});



2
votes

Voici comment obtenir la valeur de la radio: xxx

assez facile ....


0 commentaires

-1
votes

rien ne fonctionne pas dans Firefox 3.15.16 Sauf expression:

var radio = $ ('adminform'). GetElements ("entrée [nom = 'Publié']") ") ;

Désolé pour l'anglais !!!


0 commentaires

0
votes

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;
    }
});


0 commentaires

6
votes

Pas besoin de

var value = $$('input[name=foo]:checked')[0].get('value');


0 commentaires

2
votes

La meilleure réponse est de weiqianglufromchina, mais cette erreur xxx

ceci doit être xxx

testé sur Firefox, chrome, explorateur . motools 1.2.4 / 1.3

acclamations


1 commentaires

Je pense que le problème plus profond est qu'ils ne veulent pas être retourné un tableau, ce qui est ce qui est $$ ()



1
votes

Il suffit d'utiliser celui-ci dernièrement dans MotooTools 1.11. J'utilise: xxx

assez longtemps mais travaillant. Essayé avec FF 3.x

La version plus récente de MooTools peut utiliser une syntaxe plus courte comme les autres réponses fournies.


0 commentaires

2
votes

Cela fonctionne pour moi.

$$('input[name=foo]:checked').pick().get('value');


0 commentaires

3
votes

Un moyen facile pour obtenir la valeur de la radio vérifiée est la suivante:

xxx pré>

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');  


0 commentaires