L'énoncé du problème est simple. J'ai besoin de voir si l'utilisateur a sélectionné un bouton radio dans un groupe de radio. Chaque bouton radio du groupe partage le même identifiant.
Le problème est que je ne contrôle pas la manière dont le formulaire est généré. Voici l'exemple de code montrant à quoi ressemble un code de contrôle de bouton radio:
<input type="radio" name='s_2_1_6_0' value='Mail copy to my bill to address' id = "InvCopyRadio" onchange = 'SWESubmitForm(document.SWEForm2_0,s_4,"","1-DPWJJF")' style="height:20;width:25" tabindex=1997 >
En plus de cela, quand un bouton radio est sélectionné, il n'ajoute pas d'attribut "vérifié" au contrôle juste du texte vérifié (je suppose que la propriété cochée sans une valeur) . Vous trouverez ci-dessous un aperçu du contrôle radio sélectionné.
<input type="radio" checked name='s_2_1_6_0' value='Mail copy to my bill to address' id = "InvCopyRadio" onchange = 'SWESubmitForm(document.SWEForm2_0,s_4,"","1-DPWJJF")' style="height:20;width:25" tabindex=1997 >
Quelqu'un peut-il m'aider avec un code jQuery qui peut m'aider à obtenir la valeur du bouton radio coché?
Il suffit d'utiliser.
$('input[name=name_of_your_radiobutton]:checked').val();
C'est si facile.
Tout d'abord, vous ne pouvez pas avoir plusieurs éléments avec le même identifiant. Je sais que vous avez dit que vous ne pouviez pas contrôler la manière dont le formulaire était créé, mais ... essayez de supprimer en quelque sorte tous les identifiants des radios ou rendez-les uniques.
Pour obtenir la valeur du bouton radio sélectionné, sélectionnez-le par son nom avec le filtre :checked
.
var selectedVal = "";
var selected = $("input[type='radio'][name='s_2_1_6_0']:checked");
if (selected.length > 0) {
selectedVal = selected.val();
}
EDIT
Donc, vous n'avez aucun contrôle sur les noms. Dans ce cas, je dirais de placer ces boutons radio dans un div, nommé, par exemple, radioDiv
, puis de modifier légèrement votre sélecteur:
var selectedVal = "";
var selected = $("#radioDiv input[type='radio']:checked");
if (selected.length > 0) {
selectedVal = selected.val();
}
Le moyen le plus simple d'obtenir la valeur du bouton radio sélectionné est le suivant:
$("input[name='optradio']:checked").val();
Aucun espace ne doit être utilisé entre les sélecteurs.
$("#radioID") // select the radio by its id
.change(function(){ // bind a function to the change event
if( $(this).is(":checked") ){ // check if the radio is checked
var val = $(this).val(); // retrieve the value
}
});
Assurez-vous de le placer dans la fonction DOM prêt ($(function(){...});
ou $(document).ready(function(){...});
).
:checked
.$(function(){
$("#submit").click(function() {
alert($("input[name=q12_3]:checked").val());
});
});
.is(":checked")
. La fonction is()
de jQuery renvoie un booléen (vrai ou faux) et non un élément.<input type="radio" class="radioBtnClass" name="numbers" value="1" />1<br/>
<input type="radio" class="radioBtnClass" name="numbers" value="2" />2<br/>
<input type="radio" class="radioBtnClass" name="numbers" value="3" />3<br/>
Cela retournera, cochée la valeur du bouton radio.
if($("input[type='radio'].radioBtnClass").is(':checked')) {
var card_type = $("input[type='radio'].radioBtnClass:checked").val();
alert(card_type);
}
$("input[name='gender']:checked").val()
pour les attributs imbriqués
$("input[name='lead[gender]']:checked").val()
N'oubliez pas les accolades simples pour le nom
Obtenez toutes les radios:
var radios = $("input[type='radio']");
Filtre pour obtenir celui qui est coché
radios.filter(":checked");
OU
Une autre façon de trouver la valeur du bouton radio
var RadeoButtonStatusCheck = $('form 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();
Vérifiez l'exemple cela fonctionne bien
<div class="dtl_radio">
Metal purity :
<label>
<input type="radio" name="purityradio" class="gold_color" value="92" checked="">
92 %
</label>
<label>
<input type="radio" name="purityradio" class="gold_color" value="75">
75 %
</label>
<label>
<input type="radio" name="purityradio" class="gold_color" value="58.5">
58.5 %
</label>
<label>
<input type="radio" name="purityradio" class="gold_color" value="95">
95 %
</label>
<label>
<input type="radio" name="purityradio" class="gold_color" value="59">
59 %
</label>
<label>
<input type="radio" name="purityradio" class="gold_color" value="76">
76 %
</label>
<label>
<input type="radio" name="purityradio" class="gold_color" value="93">
93 %
</label>
</div>
var check_value = $('.gold_color:checked').val();
Utiliser le code ci-dessous
$('input[name=your_radio_button_name]:checked').val();
Veuillez noter que l'attribut value doit être défini de manière à obtenir "Male" ou "Female" dans votre résultat.
<div id='div_container'>
<input type="radio" name="Gender" value="Male" /> Male <br />
<input type="radio" name="Gender" value="Female" /> Female
</div>
Voir ci-dessous des exemples de travail avec un ensemble de groupes de radio associés à différentes sections. Votre schéma de nommage est important, mais dans l’idéal, vous devriez de toute façon essayer d’utiliser un schéma de nommage cohérent pour les entrées (en particulier quand elles sont dans des sections comme ici).
$('#submit').click(function(){
var section = $('input:radio[name="sec_num"]:checked').val();
var question = $('input:radio[name="qst_num"]:checked').val();
var selectedVal = checkVal(section, question);
$('#show_val_div').text(selectedVal);
$('#show_val_div').show();
});
function checkVal(section, question) {
var value = $('input:radio[name="sec'+section+'_r'+question+'"]:checked').val() || "Selection Not Made";
return value;
}
* { margin: 0; }
div { margin-bottom: 20px; padding: 10px; }
h5, label { display: inline-block; }
.small { font-size: 12px; }
.hide { display: none; }
#formDiv { padding: 10px; border: 1px solid black; }
.center { display:block; margin: 0 auto; text-align:center; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="center">
<div>
<h4>Section 1</h4>
<h5>First question text</h5>
<label class="small"><input type="radio" name="sec1_r1" value="(1:1) YES"> YES</label>
<label class="small"><input type="radio" name="sec1_r1" value="(1:1) NO"> NO</label>
<br/>
<h5>Second question text</h5>
<label class="small"><input type="radio" name="sec1_r2" value="(1:2) YES"> YES</label>
<label class="small"><input type="radio" name="sec1_r2" value="(1:2) NO"> NO</label>
<br/>
<h5>Third Question</h5>
<label class="small"><input type="radio" name="sec1_r3" value="(1:3) YES"> YES</label>
<label class="small"><input type="radio" name="sec1_r3" value="(1:3) NO"> NO</label>
</div>
<div>
<h4>Section 2</h4>
<h5>First question text</h5>
<label class="small"><input type="radio" name="sec2_r1" value="(2:1) YES"> YES</label>
<label class="small"><input type="radio" name="sec2_r1" value="(2:1) NO"> NO</label>
<br/>
<h5>Second question text</h5>
<label class="small"><input type="radio" name="sec2_r2" value="(2:2) YES"> YES</label>
<label class="small"><input type="radio" name="sec2_r2" value="(2:2) NO"> NO</label>
<br/>
<h5>Third Question</h5>
<label class="small"><input type="radio" name="sec2_r3" value="(2:3) YES"> YES</label>
<label class="small"><input type="radio" name="sec2_r3" value="(2:3) NO"> NO</label>
</div>
<div>
<h4>Section 3</h4>
<h5>First question text</h5>
<label class="small"><input type="radio" name="sec3_r1" value="(3:1) YES"> YES</label>
<label class="small"><input type="radio" name="sec3_r1" value="(3:1) NO"> NO</label>
<br/>
<h5>Second question text</h5>
<label class="small"><input type="radio" name="sec3_r2" value="(3:2) YES"> YES</label>
<label class="small"><input type="radio" name="sec3_r2" value="(3:2) NO"> NO</label>
<br/>
<h5>Third Question</h5>
<label class="small"><input type="radio" name="sec3_r3" value="(3:3) YES"> YES</label>
<label class="small"><input type="radio" name="sec3_r3" value="(3:3) NO"> NO</label>
</div>
</div>
<div id="formDiv" class="center">
<form target="#show_val_div" method="post">
<p>Choose Section Number</p>
<label class="small">
<input type="radio" name="sec_num" value="1"> 1</label>
<label class="small">
<input type="radio" name="sec_num" value="2"> 2</label>
<label class="small">
<input type="radio" name="sec_num" value="3"> 3</label>
<br/><br/>
<p>Choose Question Number</p>
<label class="small">
<input type="radio" name="qst_num" value="1"> 1</label>
<label class="small">
<input type="radio" name="qst_num" value="2"> 2</label>
<label class="small">
<input type="radio" name="qst_num" value="3"> 3</label>
<br/><br/>
<input id="submit" type="submit" value="Show Value">
</form>
<br/>
<p id="show_val_div"></p>
</div>
<br/><br/><br/>
Essayez ceci avec exemple
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1 /jquery.min.js"></script>
<form id="myForm">
<input type="radio" name="radio" value="first"/> 1 <br/>
<input type="radio" name="radio" value="second"/> 2 <br/>
</form>
<script>
$(document).ready(function () {
$('#myForm').on('click', function () {
var value = $("[name=radio]:checked").val();
alert(value);
})
});
</script>
if (!$("#InvCopyRadio").prop("checked") && $("#InvCopyRadio").prop("checked"))
// do something
Par nom seulement
$(function () {
$('input[name="EventType"]:radio').change(function () {
alert($("input[name='EventType']:checked").val());
});
});
La meilleure façon d'expliquer ce sujet simple est de donner un exemple simple et un lien de référence: -
Dans l'exemple suivant, nous avons deux boutons radio. Si l'utilisateur sélectionne un bouton radio, nous afficherons la valeur du bouton radio sélectionné dans une zone d'alerte.
Html:
<form id="Demo">
<input type="radio" name="Gender" value="Male" /> Male <br />
<input type="radio" name="Gender" value="Female" /> Female<br />
<input type="radio" name="Gender" value="others" /> others <br />
</form>
jquery: -
$(document).ready(function(){
$('#Demo input').on('change', function() {
alert($('input[name="Gender"]:checked', '#Demo').val());
});
});
<div id="subscriptions">
Company Suscription: <input type="radio" name="subsrad" value="1">
Customer Subscription:<input type="radio" name="subsrad" value="2">
Manully Set:<input type="radio" name="subsrad" value="MANUAL">
NO Subscription:<input type="radio" name="subsrad" value="0">
</div>
et gérer jquery pour l'alerte comme pour la valeur définie/modifiée via div id:
$("#subscriptions input") // select the radio by its id
.on('change', function(){ // bind a function to the change event
alert($('input[name="subsrad"]:checked', '#subscriptions').val());
});
c'est très facile....:-}
Vous pouvez obtenir la valeur du bouton radio sélectionné par ID en l’utilisant en javascript/jQuery.
$("#InvCopyRadio:checked").val();
J'espère que cela aidera.
valeur cachée du bouton radio multi-groupe à la matrice
var arr = [];
function r(n) {
var section = $('input:radio[name="' + n + '"]:checked').val();
arr[n] = section;
console.log(arr)
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="radio" onchange="r('b1')" class="radioID" name="b1" value="1">1
<input type="radio" onchange="r('b1')" class="radioID" name="b1" value="2" >2
<input type="radio" onchange="r('b1')" class="radioID" name="b1" value="3">3
<br>
<input type="radio" onchange="r('b2')" class="radioID2" name="b2" value="4">4
<input type="radio" onchange="r('b2')" class="radioID2" name="b2" value="5" >5
<input type="radio" onchange="r('b2')" class="radioID2" name="b2" value="6">6
Code HTML:
<input type="radio" name="active_status" class="active_status" value="Hold">Hold
<input type="radio" name="active_status" class="active_status" value="Cancel">Cancel
<input type="radio" name="active_status" class="active_status" value="Suspend">Suspend
Code Jquery:
$(document).on("click", ".active_status", function () {
var a = $('input[name=active_status]:checked').val();
(OR)
var a = $('.active_status:checked').val();
alert(a);
});
Voici 2 boutons radio à savoir rd1 et Radio1
<input type="radio" name="rd" id="rd1" />
<input type="radio" name="rd" id="Radio1" />
Le moyen le plus simple de vérifier quel bouton radio est coché, en vérifiant que la propriété individuelle est (": vérifié")
if ($("#rd1").is(":checked")) {
alert("rd1 checked");
}
else {
alert("rd1 not checked");
}
Je ne suis pas une personne javascript, mais j'ai trouvé ici pour rechercher ce problème. Pour qui google et trouver ici, j'espère que cela aide certains. Donc, comme question si nous avons une liste de boutons radio:
<div class="list">
<input type="radio" name="b1" value="1">
<input type="radio" name="b2" value="2" checked="checked">
<input type="radio" name="b3" value="3">
</div>
Je peux trouver lequel a été sélectionné avec ce sélecteur:
$('.list input[type="radio"]:checked:first').val();
Même si aucun élément n'est sélectionné, je ne reçois toujours pas d'erreur non définie. Donc, vous n'avez pas besoin d'écrire d'instruction if supplémentaire avant de prendre la valeur de l'élément.
Voici très basique exemple jsfiddle .
Si vous ne connaissez pas le nom spécifique ou si vous souhaitez vérifier toutes les entrées radio d'un formulaire, vous pouvez utiliser une variable globale pour vérifier la valeur d'une seule fois pour chaque groupe de radio: `
var radio_name = "";
$("form).find(":radio").each(function(){
if (!radio_name || radio_name != $(this).attr('name')) {
radio_name = $(this).attr('name');
var val = $('input[name="'+radio_name+'"]:checked').val();
if (!val) alert($('input[name="'+radio_name+'"]:checked').val());
}
});`
HTML Code
<input id="is_verified" class="check" name="is_verified" type="radio" value="1"/>
<input id="is_verified" class="check" name="is_verified" type="radio" checked="checked" value="0"/>
<input id="submit" name="submit" type="submit" value="Save" />
Javascript Code
$("input[type='radio'].check").click(function() {
if($(this).is(':checked')) {
if ($(this).val() == 1) {
$("#submit").val("Verified & Save");
}else{
$("#submit").val("Save");
}
}
});
<input type="radio" name='s_2_1_6_0' value='Mail copy to my bill to address' id = "InvCopyRadio" onchange = 'SWESubmitForm(document.SWEForm2_0,s_4,"","1-DPWJJF")' style="height:20;width:25" tabindex=1997 >
$(function() {
$("#submit").click(function() {
alert($('input[name=s_2_1_6_0]:checked').val());
});
});`