2013-08-04 5 views
103

Ecco il mio codice:In jQuery, come si ottiene il valore di un pulsante di opzione quando hanno tutti lo stesso nome?

<table> 
    <tr> 
     <td>Sales Promotion</td> 
     <td><input type="radio" name="q12_3" value="1">1</td> 
     <td><input type="radio" name="q12_3" value="2">2</td> 
     <td><input type="radio" name="q12_3" value="3">3</td> 
     <td><input type="radio" name="q12_3" value="4">4</td> 
     <td><input type="radio" name="q12_3" value="5">5</td> 
    </tr> 
</table> 
<button id="submit">submit</button> 

Ecco JS:

$(function(){ 
    $("#submit").click(function(){  
     alert($('input[name=q12_3]').val()); 
    }); 
}); 

Ecco JSFIDDLE! Ogni volta che clicco sul pulsante restituisce 1. Perché? Qualcuno può aiutarmi?

risposta

218

Nel codice, jQuery sembra proprio per la prima istanza di un input con nome q12_3, che in questo caso ha un valore di 1. Desideri un input con nome q12_3 ovvero :checked.

$("#submit").click(function() { 
 
    var val = $('input[name=q12_3]:checked').val(); 
 
    alert(val); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<table> 
 
    <tr> 
 
    <td>Sales Promotion</td> 
 
    <td><input type="radio" name="q12_3" value="1">1</td> 
 
    <td><input type="radio" name="q12_3" value="2">2</td> 
 
    <td><input type="radio" name="q12_3" value="3">3</td> 
 
    <td><input type="radio" name="q12_3" value="4">4</td> 
 
    <td><input type="radio" name="q12_3" value="5">5</td> 
 
    </tr> 
 
</table> 
 
<button id="submit">submit</button>

noti che il codice di cui sopra non è lo stesso che con .is(":checked"). La funzione is() di jQuery restituisce un elemento booleano (vero o falso) e non (uno).

15

nel selettore, si dovrebbe anche specificare che si desidera il pulsante radio controllato:

$(function(){ 
    $("#submit").click(function(){  
     alert($('input[name=q12_3]:checked').val()); 
    }); 
}); 
+0

io sono sempre 'undefined' valore –

+0

@PavanAlapati Non possiamo davvero dire perché senza vedere il codice HTML pure; idealmente, potresti pubblicare una nuova domanda con il tuo esatto frammento di codice HTML e il codice che stai utilizzando. Si dovrebbe tuttavia ottenere undefined solo se: il nome nel selettore non corrisponde ai nomi dei pulsanti radio; nessuno dei radiobutton viene controllato; o il pulsante radio selezionato non ha un valore assegnato. –

6

si potrebbe desiderare di cambiare selettore:

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

0

uso questo script

$('input[name=q12_3]').is(":checked"); 
+3

La funzione 'is' di jQuery restituirà un' booleano', che in questo caso sarebbe inutile. –

+0

sì, hai ragione, non ho ricevuto correttamente la domanda –

2

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

4

C'è un altro modo anche. Prova sottostante Codice

$(document).ready(function(){ 

     $("input[name='gender']").on("click", function() { 
      alert($(this).val()); 
     }); 
}); 
Problemi correlati