J'ai un problème étrange avec mon programme JS. Je l'ai fait fonctionner correctement, mais pour une raison quelconque, il ne fonctionne plus. Je veux juste trouver la valeur du bouton radio (lequel est sélectionné) et le retourner à une variable. Pour une raison quelconque, il revient sans cesse undefined
.
Voici mon code:
function findSelection(field) {
var test = 'document.theForm.' + field;
var sizes = test;
alert(sizes);
for (i=0; i < sizes.length; i++) {
if (sizes[i].checked==true) {
alert(sizes[i].value + ' you got a value');
return sizes[i].value;
}
}
}
submitForm
:
function submitForm() {
var genderS = findSelection("genderS");
alert(genderS);
}
HTML:
<form action="#n" name="theForm">
<label for="gender">Gender: </label>
<input type="radio" name="genderS" value="1" checked> Male
<input type="radio" name="genderS" value="0" > Female<br><br>
<a href="javascript: submitForm()">Search</A>
</form>
javascript
html
for-loop
radio-button
mkyong
la source
la source
Réponses:
Vous pouvez faire quelque chose comme ça:
jsfiddle
Modifier: Merci HATCHA et jpsetung pour vos suggestions de modification.
la source
@
syntaxe a été dépréciée encore plus tôt que cela (jquery 1.2)@
devrait définitivement être supprimédocument.querySelector()
devrait probablement être l'approche recommandée en JavaScript simple maintenant.Cela fonctionne avec n'importe quel explorateur.
Il s'agit d'un moyen simple d'obtenir la valeur de n'importe quel type d'entrée. Vous n'avez également pas besoin d'inclure le chemin jQuery.
la source
document.querySelector(...)
estnull
.var selector = document.querySelector('input[name="genderS"]:checked'); if(selector) console.log(selector.value);
:checked
truc totalement clouée pour moi .. pour moi le correctif à la lecture des boutons radio à partir d' un modèle de formulaire MeteoraccountType = template.find("[name='optradio']:checked").value;
la source
document.forms.your-form-name.name-shared-by-radio-buttons.value
Depuis jQuery 1.8, la syntaxe correcte pour la requête est
Plus
$('input[@name="genderS"]:checked').val();
maintenant, qui fonctionnait dans jQuery 1.7 (avec le @ ).la source
Version ECMAScript 6
la source
La solution la plus simple:
la source
Essaye ça
Un violon ici .
la source
Edit: Comme l'a dit Chips_100, vous devez utiliser:
directement sans utiliser la variable de test.
Ancienne réponse:
Tu ne devrais pas
eval
aimer ça?Je ne sais pas comment cela fonctionne, mais pour moi, vous ne faites que copier une chaîne.
la source
var sizes = document.theForm[field];
et supprimer la première affectation, donc ne plus utiliser detest
variable.eval('var sizes=document.theForm.' + field)
?var sizes = eval(test);
fonctionnerait de cette façon (je viens de la tester dans firebug).field
entre crochets. Vous devinez pourquoi?Ceci est du pur JavaScript, basé sur la réponse de @Fontas mais avec un code de sécurité pour renvoyer une chaîne vide (et éviter a
TypeError
) s'il n'y a pas de bouton radio sélectionné:Le code se décompose comme ceci:
<input>
type, (b) a unname
attribut degenderS
, et (c) est vérifié.genderSRadio
variable est vraie si la ligne 1 trouve le contrôle et null / falsey si ce n'est pas le cas.Pour JQuery, utilisez la réponse de @ jbabey et notez que s'il n'y a pas de bouton radio sélectionné, il reviendra
undefined
.la source
Au cas où quelqu'un chercherait une réponse et atterrirait ici comme moi, à partir de Chrome 34 et Firefox 33, vous pouvez faire ce qui suit:
ou plus simple:
réfrence: https://developer.mozilla.org/en-US/docs/Web/API/RadioNodeList/value
la source
Voici un exemple pour les radios où aucun attribut Vérifié = "vérifié" n'est utilisé
DEMO : http://jsfiddle.net/ipsjolly/hgdWp/2/ [ Cliquez sur Rechercher sans sélectionner de radio ]
Source: http://bloggerplugnplay.blogspot.in/2013/01/validateget-checked-radio-value-in.html
la source
Voici une bonne façon d'obtenir la valeur du bouton radio coché avec du JavaScript simple:
Source: https://ultimatecourses.com/blog/get-value-checked-radio-buttons
En utilisant ce HTML:
Vous pouvez également utiliser Array Find la
checked
propriété pour rechercher l'élément coché:la source
À l'aide d'un javascript pur, vous pouvez gérer la référence à l'objet qui a distribué l'événement.
la source
supposons que vous ayez besoin de placer différentes rangées de boutons radio dans un formulaire, chacun avec des noms d'attribut séparés ('option1', 'option2' etc.) mais le même nom de classe. Peut-être en avez-vous besoin sur plusieurs lignes où chacun soumettra une valeur basée sur une échelle de 1 à 5 se rapportant à une question. vous pouvez écrire votre javascript comme ceci:
Je voudrais également insérer la sortie finale dans un élément de formulaire caché à soumettre avec le formulaire.
la source
la source
S'il vous est possible d'attribuer un identifiant à votre élément de formulaire (), cette méthode peut être considérée comme une alternative sûre (en particulier lorsque le nom de l'élément de groupe radio n'est pas unique dans le document):
HTML:
la source
etc alors utilisez juste
Ou
la source
la source