2013-08-04 7 views
103

Hier ist mein Code:Wie erhalte ich in jQuery den Wert eines Optionsfelds, wenn alle denselben Namen haben?

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

Hier ist JS:

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

Hier ist JSFIDDLE! Jedes Mal, wenn ich auf die Schaltfläche klicke, wird 1 angezeigt. Warum? Kann mir jemand helfen?

Antwort

218

in Ihrem Code sieht jQuery nur für die erste Instanz einer Eingabe mit dem Namen , die in diesem Fall den Wert 1 hat. Sie möchten eine Eingabe mit dem Namen , also :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>

Beachten Sie, dass der obige Code nicht das gleiche wie mit .is(":checked") ist. Die is() Funktion von jQuery gibt ein Boolesches (wahr oder falsch) und kein (e) Element (e) zurück.

15

in Ihrem Wähler, sollten Sie auch angeben, dass Sie die geprüfte RadioButton- wollen:

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

Ich bin immer 'undefined' Wert –

+0

@PavanAlapati Wir können wirklich nicht sagen, warum ohne Ihre HTML als auch zu sehen; Im Idealfall würden Sie eine neue Frage mit Ihrem genauen HTML-Code und dem von Ihnen verwendeten Code posten. Sie sollten jedoch nur undefiniert werden, wenn: Der Name im Selektor nicht mit den Namen der Radiobuttons übereinstimmt; keiner der Radiobuttons wird überprüft; oder dem aktivierten Radiobutton ist kein Wert zugewiesen. –

6

Vielleicht möchten Selektor ändern:

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

0

Verwendung dieses Skript

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

jQuerys 'is' -Funktion gibt einen' boolean' zurück, der in diesem Fall nutzlos wäre. –

+0

yeah du hast recht Ich habe die Frage nicht richtig verstanden –

2

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

4

Es gibt auch eine andere Art und Weise. Versuchen Sie unter Code

$(document).ready(function(){ 

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