JQuery: Comment obtenir la valeur du bouton radio sélectionné?
Comment définir par défaut la valeur d'un bouton radio non sélectionné sur 0
?
J'ai le code HTML suivant:
<input type="radio" name="myradiobutton" value="1" />1
<input type="radio" name="myradiobutton" value="2" />2
<input type="radio" name="myradiobutton" value="3" />3
Et j'ai le code suivant pour obtenir la valeur du bouton radio sélectionné
var radio_button_value $('input[name=myradiobutton]:radio').click(function() {var value = $(this).val();});
Le problème est, je veux par défaut la valeur de radio_button_value
à 0
dans l'événement rien est sélectionné. Comment je fais ça?
Je veux fondamentalement faire le pseduo-code ci-dessous (mais cela ne fonctionne pas)
var radio_button_value $('input[name=myradiobutton]:radio').click(function() {
if set
return $(this).val();
else
return 0;
});
MISE À JOUR
Il semble y avoir une confusion sur ce que je demande.
Ce que je veux faire lorsque la page est chargée (avant même qu'un utilisateur ait pu sélectionner un bouton radio), je souhaite une fonction qui renvoie 0 pour la valeur du bouton radio.
Ensuite, une fois qu'un utilisateur a sélectionné un bouton radio, cette fonction SAME renvoie la valeur sélectionnée du bouton radio.
Avoir un sens?
$('input[name=myradiobutton]:radio:checked')
vous obtiendra le bouton radio sélectionné $('input[name=myradiobutton]:radio:not(:checked)')
vous obtiendra les boutons radio non sélectionnés
En utilisant cela, vous pouvez le faire
$('input[name=myradiobutton]:radio:not(:checked)').val("0");
Mise à jour: Après avoir lu votre mise à jour, je pense avoir compris. Vous voudrez faire quelque chose comme ceci.
var myRadioValue;
function radioValue(jqRadioButton){
if (jqRadioButton.length) {
myRadioValue = jqRadioButton.val();
}
else {
myRadioValue = 0;
}
}
$(document).ready(function () {
$('input[name=myradiobutton]:radio').click(function () { //Hook the click event for selected elements
radioValue($('input[name=myradiobutton]:radio:checked'));
});
radioValue($('input[name=myradiobutton]:radio:checked')); //check for value on page load
});
Utilisez le sélecteur : coché pour déterminer si une valeur est sélectionnée:
function getRadioValue () {
if( $('input[name=myradiobutton]:radio:checked').length > 0 ) {
return $('input[name=myradiobutton]:radio:checked').val();
}
else {
return 0;
}
}
Mise à jour Vous pouvez appeler la fonction ci-dessus à tout moment pour obtenir la valeur sélectionnée des boutons radio. Vous pouvez y accéder au chargement, puis à chaque fois que la valeur change avec les événements suivants:
$(document).ready( function() {
// Value when you load the page for the first time
// Will return 0 the first time it's called
var radio_button_value = getRadioValue();
$('input[name=myradiobutton]:radio').click( function() {
// Will get the newly selected value
radio_button_value = getRadioValue();
});
}
Il commencera dès le chargement de la page. Vous pouvez le garder sous certains événements tels que le clic sur un bouton
$("#btn").click(function() {
var val= $('input[type="radio"]:checked').val();
});
jQuery("input:radio[name=myradiobutton]:checked").val();
Je sais que c'est une vieille question mais je trouve que les réponses ne suffisent pas
La façon la plus propre de le faire est d'utiliser ce code
$(".myRadio").click(function() {
alert($(this).val());
});
:-)
Vos données de saisie de formulaire doivent ressembler à ceci
<input type="radio" value="40000" name="pay" class="myRadio" />
<label for="40000">40000</label>
La meilleure méthode (en particulier si vous souhaitez pouvoir publier une valeur par défaut) serait probablement d’avoir un bouton radio masqué qui commence comme sélectionné et a votre valeur par défaut. Donc, quelque chose comme ça:
<input type="radio" name="myradiobutton" value="0" checked="checked" style="display:none;" />
<input type="radio" name="myradiobutton" value="1" />1
<input type="radio" name="myradiobutton" value="2" />2
<input type="radio" name="myradiobutton" value="3" />3
Si vous ne pouvez pas modifier directement votre code HTML, vous pouvez l'ajouter via un script:
$(function() {
$('input[name=myradiobutton]:radio:first').before('<input type="radio" name="myradiobutton" value="0" checked="checked" style="display:none;" />');
});
En voici une démo: http://jsfiddle.net/Ender/LwPCv/
Cette méthode Jquery renvoie la valeur par défaut 0 lorsque la page est chargée ...
$('input[type="radio"]:checked').val();
Pour obtenir la valeur du bouton radio sélectionné, utilisez RadioButtonName et l'ID de formulaire contenant le RadioButton.
$('input[name=radioName]:checked', '#myForm').val()
OU par seulement
$('form input[type=radio]:checked').val();
Ce travail pour moi espère que cela aidera: pour obtenir la valeur sélectionnée pour la radio, vous devez utiliser le nom du rapport comme sélecteur comme celui-ci.
selectedVal = $('input[name="radio_name"]:checked').val();
selectedVal aura la valeur requise, changez le nom de radio en fonction de la vôtre, dans votre cas, il serait "myradiobutton"
selectedVal = $('input[name="myradiobutton"]:checked').val();
Vous devriez vraiment utiliser les cases à cocher s'il y a un cas où quelque chose n'est pas sélectionné.
selon le W3C
Si aucun bouton radio dans un ensemble partageant le même nom de contrôle n'est initialement "activé", le comportement de l'agent utilisateur pour choisir quel contrôle est initialement "activé" n'est pas défini. Remarque. Puisque les implémentations existantes traitent ce cas différemment, la spécification actuelle diffère de la RFC 1866 (section [RFC1866] 8.1.2.4), qui stipule:
A tout moment, l'un des boutons radio d'un ensemble est coché. Si aucun des éléments d'un ensemble de boutons radio ne spécifie "CHECKED", l'agent d'utilisateur doit d'abord vérifier le premier bouton radio de l'ensemble.
Le comportement de l'agent utilisateur étant différent, les auteurs doivent s'assurer que, dans chaque ensemble de boutons radio, celui-ci est initialement "activé".