Ich habe zwei Optionsfelder und möchte den Wert des ausgewählten Feldes ausgeben. Wie kann ich den Wert mit jQuery erhalten?
Ich kann sie alle auf diese Weise bekommen:
$("form :radio")
Woher weiß ich, welcher ausgewählt ist?
Ich habe zwei Optionsfelder und möchte den Wert des ausgewählten Feldes ausgeben. Wie kann ich den Wert mit jQuery erhalten?
Ich kann sie alle auf diese Weise bekommen:
$("form :radio")
Woher weiß ich, welcher ausgewählt ist?
Um den Wert des Parameters ausgewählt radioName
Element eines Formulars mit id myForm
:
$('input[name=radioName]:checked', '#myForm').val()
Hier ist ein Beispiel:
$('#myForm input').on('change', function() {
alert($('input[name=radioName]:checked', '#myForm').val());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="myForm">
<input type="radio" name="radioName" value="1" /> 1 <br />
<input type="radio" name="radioName" value="2" /> 2 <br />
<input type="radio" name="radioName" value="3" /> 3 <br />
</form>
Ich füge dies nur hinzu, weil es jemandem helfen könnte. Wenn der Name des Radios hat Klammern wie radioName[0] (manchmal in Wordpress verwendet), müssen Sie Anführungszeichen um den Namen wie input[name='radioName[0]']:checked verwenden
Im Beispiel der onChange-Methode können Sie auch this.value anstelle von $('input[name=radioName]:checked', '#myForm').val() verwenden :)
Wenn Sie bereits einen Verweis auf eine Optionsschaltflächengruppe haben, z. B.:
var myRadio = $("input[name=myRadio]");
Verwenden Sie die filter()
Funktion, nicht find()
. ( find()
dient zum Auffinden von Kind-/Nachfahrerelementen, während filter()
sucht nach Elementen der obersten Ebene in Ihrer Auswahl).
var checkedValue = myRadio.filter(":checked").val();
Notas: Mit dieser Antwort wurde ursprünglich eine andere Antwort korrigiert, die die Verwendung von find()
die anscheinend inzwischen geändert wurde. find()
könnte immer noch nützlich sein, wenn Sie bereits einen Verweis auf ein Containerelement haben, aber nicht auf die Optionsfelder, z. B.:
var form = $("#mainForm");
...
var checkedValue = form.find("input[name=myRadio]:checked").val();
Das sieht nett aus, aber die jQuery-Dokumentation empfiehlt die Verwendung von [type=radio] anstelle von :radio, um die Leistung zu verbessern. Es ist ein Kompromiss zwischen Lesbarkeit und Leistung. Normalerweise ziehe ich bei solch trivialen Dingen die Lesbarkeit der Leistung vor, aber in diesem Fall denke ich, dass [type=radio] tatsächlich klarer ist. In diesem Fall würde es also wie $("form input[type=radio]:checked").val() aussehen. Trotzdem eine gültige Antwort.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.