Je veux obtenir la valeur sélectionnée à partir d'un groupe de boutons radio.
Voici mon HTML:
<div id="rates">
<input type="radio" id="r1" name="rate" value="Fixed Rate"> Fixed Rate
<input type="radio" id="r2" name="rate" value="Variable Rate"> Variable Rate
<input type="radio" id="r3" name="rate" value="Multi Rate" checked="checked"> Multi Rate
</div>
Voici mon .js:
var rates = document.getElementById('rates').value;
var rate_value;
if(rates =='Fixed Rate'){
rate_value = document.getElementById('r1').value;
}else if(rates =='Variable Rate'){
rate_value = document.getElementById('r2').value;
}else if(rates =='Multi Rate'){
rate_value = document.getElementById('r3').value;
}
document.getElementById('results').innerHTML = rate_value;
Je continue à être indéfini.
javascript
html
radio-button
ZombieBatman
la source
la source
$("input[type='radio'][name='rate']:checked").val();
.checked
<form></form>
conteneur.Réponses:
L'élément taux est un
div
, il n'aura donc pas de valeur. C'est probablement d'oùundefined
vient le.La
checked
propriété vous indiquera si l'élément est sélectionné:la source
$("input[name=rate]:checked").val()
[checked]
) recherche l' attribut (c'est-à-dire l'état initial). Vous devriez plutôt utiliser:checked
, qui recherche la propriété (c'est-à-dire l'état actuel), et qui est presque toujours ce que vous voulez.document.querySelectorAll("input[name=rate]:checked")[0].value
Cela fonctionne dans IE9 et supérieur et dans tous les autres navigateurs.
la source
:checked
sélecteur.rate
ne sont pas requis.:checked
éléments - peut-être qu'il a tout "haché et mis en cache" et c'est uneO(1)
opération. À moins que vous ne l'ayez profilé pour indiquer quelque chose comme le temps de requête augmente avec le nombre d'éléments sur la page, ou à moins que vous compreniez le code source du navigateur derrière, vous ne pouvez pas le dire.Vous pouvez obtenir la valeur en utilisant la
checked
propriété.la source
break
orreturn
à l'intérieur duif
bloc arrête les passages supplémentaires dans la boucle. Un petit point, mais bon style.Pour vous les personnes vivant à la limite:
Il y a maintenant quelque chose appelé RadioNodeList et l'accès à sa propriété value retournera la valeur de l'entrée actuellement vérifiée. Cela supprimera la nécessité de filtrer d'abord l'entrée «vérifiée» comme nous le voyons dans de nombreuses réponses publiées.
Exemple de formulaire
Pour récupérer la valeur vérifiée, vous pouvez faire quelque chose comme ceci:
Le JSFiddle pour le prouver: http://jsfiddle.net/vjop5xtq/
Veuillez noter que cela a été implémenté dans Firefox 33 (tous les autres principaux navigateurs semblent le prendre en charge). Les navigateurs plus anciens auront besoin d'un polfyill pour
RadioNodeList
que cela fonctionne correctementla source
form.elements["test"].value
fonctionne très bien dans Chrome [Version 49.0.2623.87 m].Celui qui a fonctionné pour moi est donné ci-dessous sur api.jquery.com.
HTML
Javascript
La variable selectedOption contiendra la valeur du bouton radio sélectionné (ie) o1 ou o2
la source
Une autre option (apparemment plus ancienne) consiste à utiliser le format: "document.nameOfTheForm.nameOfTheInput.value;" par exemple document.mainForm.rads.value;
Vous pouvez faire référence à l'élément par son nom dans un formulaire. Votre code HTML d'origine ne contient cependant pas d'élément de formulaire.
Violon ici (fonctionne dans Chrome et Firefox): https://jsfiddle.net/Josh_Shields/23kg3tf4/1/
la source
Utilisez document.querySelector ('entrée [type = radio]: cochée'). Valeur; pour obtenir la valeur de la case à cocher sélectionnée, vous pouvez utiliser d'autres attributs pour obtenir une valeur telle que nom = sexe, etc. veuillez consulter l' extrait ci-dessous, cela vous sera certainement utile,
Solution
Je vous remercie
la source
CODE HTML:
<input type="radio" name="rdoName" value="YES"/> <input type="radio" name="rdoName" value="NO"/>
CODE JQUERY:
Tu auras
la source
En Javascript, nous pouvons obtenir les valeurs en utilisant l'ID "
getElementById()
" dans le code ci-dessus que vous avez publié contient un nom et non un ID afin que vous puissiez modifier comme ceciutilisez cette rate_value selon votre code
la source
Un an environ s'est écoulé depuis que la question a été posée, mais je pensais qu'une amélioration substantielle des réponses était possible. Je trouve que c'est le script le plus simple et le plus polyvalent, car il vérifie si un bouton a été vérifié, et si oui, quelle est sa valeur:
Vous pouvez également appeler la fonction dans une autre fonction, comme ceci:
la source
En supposant que votre élément de formulaire est référencé par la
myForm
variable ci-dessous et que vos boutons radio partagent le nom "my-radio-button-group-name", ce qui suit est pur JavaScript et conforme aux normes (bien que je ne l'ai pas vérifié pour être disponible partout ):Ce qui précède donnera la valeur d'un élément de bouton radio coché (ou sélectionné, comme on l'appelle également), le cas échéant, ou
null
autrement. Le nœud de la solution est lenamedItem
fonction qui fonctionne spécifiquement avec les boutons radio.Voir HTMLFormElement.elements , HTMLFormControlsCollection.namedItem et surtout RadioNodeList.value , car renvoie
namedItem
généralement unRadioNodeList
objet.J'utilise MDN parce qu'il permet de suivre la conformité aux normes, au moins dans une large mesure, et parce qu'il est plus facile à comprendre que de nombreuses publications WhatWG et W3C.
la source
RadioNodeList
par quelque chose commeform.elements[name]
ouform[name]
(peut-être, une spéculation) ou par ma syntaxe ci-dessus.appeler plusieurs fois un bouton radio vous donne la valeur du premier bouton, pas du bouton VÉRIFIÉ. au lieu de parcourir les boutons radio pour voir lequel est coché, je préfère appeler une
onclick
fonction javascript qui définit une variable qui peut être récupérée ultérieurement à volonté.qui appelle:
l'avantage supplémentaire étant que je peux traiter les données et / ou réagir à la vérification d'un bouton (dans ce cas, activer le bouton SUBMIT).
la source
onchange
plutôt lier l' événement, dans le cas où l'utilisateur utilise un clavier.Une amélioration par rapport aux fonctions proposées précédemment:
la source
Mon point de vue sur ce problème avec le javascript pur est de trouver le nœud vérifié, de trouver sa valeur et de le sortir du tableau.
Notez que j'utilise les fonctions fléchées . Voir ce violon pour un exemple de travail.
la source
tagName === 'INPUT'
vérification pour m'assurer que vous ne travaillez sur aucune balise autre queinput
.Si vous utilisez jQuery:
$('input[name="rate"]:checked').val();
la source
Vous pouvez utiliser
.find()
pour sélectionner l'élément coché:la source
puis...
la source
rates.rate.value
nonrates.value
document.getElementById("rates").rate.value
[ou]document.forms[0].rate.value
vérifier la valeur par ID:
la source
J'ai utilisé la fonction jQuery.click pour obtenir la sortie souhaitée:
J'espère que ça aide.
la source
Si les boutons sont dans un formulaire,
var myform = new FormData(getformbywhatever); myform.get("rate");
QuerySelector ci-dessus est une meilleure solution. Cependant, cette méthode est facile à comprendre, surtout si vous n'avez aucune idée de CSS. De plus, les champs de saisie sont très probablement sous une forme de toute façon.
N'a pas vérifié, il existe d'autres solutions similaires, désolé pour la répétition
la source
ne peut pas obtenir les valeurs d'un bouton radio comme ça à la place utiliser
la source
Si vous utilisez le
JQuery
, veuillez utiliser l'extrait de code ci-dessous pour le groupe de boutons radio.la source
Utilisez simplement:
document.querySelector('input[rate][checked]').value
la source
document.querySelector('input[name = rate]:checked').value
la source
Vous pouvez également parcourir les boutons avec une boucle forEach sur les éléments
la source
https://codepen.io/anon/pen/YQxbZJ
Le HTML
Le JS
la source
En php c'est une
page html très simple
Transformez la forme en php
la source