jquery - on change of radio button



jQuery ottiene il valore del pulsante di opzione selezionato (15)

La dichiarazione del problema è semplice. Devo vedere se l'utente ha selezionato un pulsante di opzione da un gruppo radio. Ogni pulsante di opzione nel gruppo condivide lo stesso ID.

Il problema è che non ho il controllo su come viene generato il modulo. Ecco il codice di esempio di come appare il codice di controllo di un pulsante di opzione:

<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 >

Oltre a ciò, quando viene selezionato un pulsante di opzione, non aggiunge un attributo "controllato" al controllo solo testo controllato (suppongo solo la proprietà controllata senza un valore) . Di seguito è riportato l'aspetto di un radiocomando selezionato

<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 >

Qualcuno può aiutarmi con il codice jQuery che può aiutarmi a ottenere il valore del pulsante di opzione selezionato?

https://ffff65535.com


Controlla l'esempio funziona bene

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


Un altro modo semplice per capire ... Sta funzionando:

Codice HTML:

<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>

Codice Jquery:

$('.list input[type="radio"]:checked:first').val();

Basta usare

$('input[name=name_of_your_radiobutton]:checked').val();

Così facile.


Il modo migliore per spiegare questo semplice argomento è dare un esempio semplice e un link di riferimento: -

Nell'esempio seguente abbiamo due pulsanti di opzione. Se l'utente seleziona un pulsante di opzione, verrà visualizzato il valore del pulsante di opzione selezionato in una casella di avviso.

html:

 $(document).ready(function(){
        $('#Demo input').on('change', function() {
            alert($('input[name="Gender"]:checked', '#Demo').val());
        });
    });

jQuery: -

<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>

Innanzitutto, non puoi avere più elementi con lo stesso id. So che hai detto che non puoi controllare come viene creato il modulo, ma ... prova a rimuovere in qualche modo tutti gli id ​​dalle radio, o renderli unici.

Per ottenere il valore del pulsante di opzione selezionato, selezionalo per nome con il :checked filtro :checked .

var selectedVal = "";
var selected = $("input[type='radio'][name='s_2_1_6_0']:checked");
if (selected.length > 0) {
    selectedVal = selected.val();
}

MODIFICARE

Quindi non hai il controllo sui nomi. In tal caso, direi mettere questi pulsanti di radioDiv tutti all'interno di un div, chiamato, diciamo, radioDiv , quindi modificare leggermente il selettore:

var selectedVal = "";
var selected = $("#radioDiv input[type='radio']:checked");
if (selected.length > 0) {
    selectedVal = selected.val();
}

Non sono una persona javascript, ma ho trovato qui per cercare questo problema. Per chi google e trova qui, spero che questo aiuti alcuni. Quindi, come in questione se abbiamo una lista di pulsanti radio:

<input type="radio" name="rd" id="rd1" />
<input type="radio" name="rd" id="Radio1" /> 

Posso trovare quale selezionato con questo selettore:

if ($("#rd1").is(":checked")) {
      alert("rd1 checked");
   }
 else {
      alert("rd1 not checked");
   }

Anche se non è selezionato alcun elemento, non riesco ancora ad ottenere un errore non definito. Quindi, non devi scrivere extra se la dichiarazione prima di prendere il valore dell'elemento.

Ecco un esempio jsfiddle di base.


Per ottenere il valore del pulsante radio selezionato, utilizzare RadioButtonName e l'ID modulo contenente il pulsante Radio.

$('input[name=radioName]:checked', '#myForm').val()

O solo

$('form input[type=radio]:checked').val();

Prova questo con l'esempio

<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>

Solo per nome

$(function () {
    $('input[name="EventType"]:radio').change(function () {
        alert($("input[name='EventType']:checked").val());
    });
});

Usa sotto il codice

 $('input[name=your_radio_button_name]:checked').val(); 

Si noti che l'attributo value deve essere definito in modo da ottenere "Male" o "Female" nel risultato.

 <div id='div_container'> <input type="radio" name="Gender" value="Male" /> Male <br /> <input type="radio" name="Gender" value="Female" /> Female </div> 

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

 $("input[name='gender']:checked").val()

per attributi annidati

$("input[name='lead[gender]']:checked").val()

Non dimenticare le singole parentesi per nome


<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>

e gestire jquery per l'avviso come per il valore impostato / modificato tramite 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());
            });

è così facile ....: -}


<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/>

Questo ritornerà, controllato il valore del pulsante radio.

if($("input[type='radio'].radioBtnClass").is(':checked')) {
    var card_type = $("input[type='radio'].radioBtnClass:checked").val();
    alert(card_type);
}

if (!$("#InvCopyRadio").prop("checked") && $("#InvCopyRadio").prop("checked"))
    // do something




siebel