Ich habe 3 Optionsfelder auf meiner Webseite, wie unten:
<label for="theme-grey">
<input type="radio" id="theme-grey" name="theme" value="grey" />Grey</label>
<label for="theme-pink">
<input type="radio" id="theme-pink" name="theme" value="pink" />Pink</label>
<label for="theme-green">
<input type="radio" id="theme-green" name="theme" value="green" />Green</label>
In jQuery möchte ich den Wert des ausgewählten Optionsfelds abrufen, wenn auf eines dieser drei geklickt wird. In jQuery haben wir ID- (#) und Klassen- (.) Selektoren, aber was ist, wenn ich ein Optionsfeld mit seinem Namen wie unten suchen möchte?
$("<radiobutton name attribute>").click(function(){});
Bitte sagen Sie mir, wie ich dieses Problem lösen kann.
javascript
jquery
html
radio-button
Prashant
quelle
quelle
document.querySelectorAll("input:radio[name=theme]").forEach(function() { this.onclick=function() { var value = this.value; }; });
Antworten:
Dies sollte es tun, all dies steht in der Dokumentation , die ein sehr ähnliches Beispiel dafür hat:
Ich sollte auch beachten, dass Sie mehrere identische IDs in diesem Snippet haben. Dies ist ungültiges HTML. Verwenden Sie Klassen, um eine Reihe von Elementen und keine IDs zu gruppieren, da diese eindeutig sein sollten.
quelle
[type='radio']
stattdessen:radio
die Leistungssteigerung der nativen DOM-querySelectorAll()
Methode nutzen.Versuchen Sie Folgendes, um festzustellen, welches Optionsfeld aktiviert ist:
Das Ereignis wird für alle Optionsfelder in der Gruppe abgefangen und der Wert der ausgewählten Schaltfläche wird in val platziert.
Update: Nach dem Posten habe ich entschieden, dass Paolos Antwort oben besser ist, da sie eine DOM-Durchquerung weniger verwendet. Ich lasse diese Antwort stehen, da sie zeigt, wie das ausgewählte Element browserübergreifend kompatibel ist.
quelle
[type='radio']
stattdessen:radio
die Leistungssteigerung der nativen DOM-querySelectorAll()
Methode nutzen.:checked
ermitteln, welche Schaltfläche aktiviert ist, z. B. mit einem Ereignishandler zum Senden von Formularen, bei dem dasthis
Schlüsselwort nicht der angeklickten Schaltfläche zugeordnet ist.quelle
$("input[name=theme]:checked").val();
(ließ das:radio
Teil weg und es scheint in IE, FF, Safari und Chrome gut zu funktionieren. Ich musste mit jQ v 1.3 arbeiten ... Das bedeutet natürlich, dass es nur ein Element namens "Thema" gibt.ein anderer Weg
quelle
$themeRadios = $('input:radio[name=theme'])
um Ereignishandler festzulegen und dann den Wert mithilfe des Filters abzurufen, z$themeRadios.filter(":checked").val()
.Das funktioniert gut für mich. Zum Beispiel haben Sie zwei Optionsfelder mit demselben "Namen" und wollten nur den Wert des aktivierten abrufen. Sie können diesen versuchen.
quelle
Der folgende Code wird verwendet, um den ausgewählten Optionsfeldwert nach Namen abzurufen
Danke Adnan
quelle
Ich habe diese Frage gefunden, als ich nach einem Upgrade von 1.7.2 von jQuery auf 1.8.2 nach einem Fehler gesucht habe. Ich füge meine Antwort hinzu, da sich in jQuery 1.8 und höher eine Änderung geändert hat, die die Art und Weise ändert, wie diese Frage jetzt beantwortet wird.
Mit jQuery 1.8 haben sie die Pseudo-Selektoren wie: radio ,: checkbox ,: text veraltet .
Um dies zu tun, ersetzen Sie jetzt einfach das
:radio
durch[type=radio]
.Ihre Antwort gilt nun für alle Versionen von jQuery 1.8 und höher:
Informationen zur Änderung in der Readme-Datei 1.8 und zum für diese Änderung spezifischen Ticket sowie Informationen dazu finden Sie auf der Seite : Radioauswahl im Abschnitt Zusätzliche Informationen.
quelle
$("input[type='radio'][name='theme']:checked")
Für alle, die keine Bibliothek einbinden möchten, um etwas wirklich Einfaches zu tun:
jsfiddle
Eine Leistungsübersicht der aktuellen Antworten finden Sie hier
quelle
Wenn Sie den Wert des standardmäßig ausgewählten Optionsfelds vor einem Klickereignis wissen möchten, versuchen Sie Folgendes:
quelle
Sie können die Filterfunktion verwenden, wenn Sie mehr als eine Funkgruppe auf der Seite haben (siehe unten)
Hier ist Geigen-URL
http://jsfiddle.net/h6ye7/67/
quelle
quelle
Wenn Sie einen wahren / falschen Wert wünschen, verwenden Sie diesen:
quelle
So etwas vielleicht?
Wenn Sie auf ein Optionsfeld klicken, wird es meiner Meinung nach ausgewählt, sodass dies für das ausgewählte Optionsfeld aufgerufen wird.
quelle
Wenn Sie mehr als eine Gruppe von Optionsfeldern auf derselben Seite haben, können Sie dies auch versuchen, um den Wert des Optionsfelds zu ermitteln:
Prost!
quelle
Sie können auch eine CSS-Klasse verwenden, um den Bereich der Optionsfelder zu definieren, und anschließend den Wert mithilfe der folgenden Optionen bestimmen
quelle
Das hat bei mir funktioniert ..
HTML:
Jquery:
Ich hoffe es hilft..
quelle
quelle
Möglicherweise stellen Sie fest, dass die Verwendung der Klassenauswahl zum Abrufen des
ASP.NET RadioButton
Steuerelementwerts immer leer ist. Hier ist der Grund.Sie erstellen die
RadioButton
SteuerungASP.NET
wie folgt:Und
ASP.NET
rendert folgendes HTML für IhreRadioButton
Denn
ASP.NET
wir möchten keinenRadioButton
Kontrollnamen oder keine ID verwenden, da sie sich aus irgendeinem Grund außerhalb der Hand des Benutzers ändern können (Änderung des Containernamens, des Formularnamens, des Benutzerkontrollnamens usw.), wie Sie im obigen Code sehen können.Der einzig mögliche Weg, um den Wert von
RadioButton
using jQuery zu ermitteln, ist die Verwendung der CSS-Klasse, wie in dieser Antwort auf eine völlig unabhängige Frage wie folgt erwähntquelle