Ich habe zwei Optionsfelder beim Änderungsereignis. Ich möchte den Änderungsknopf. Wie ist das möglich? Mein Code
<input type="radio" name="bedStatus" id="allot" checked="checked" value="allot">Allot
<input type="radio" name="bedStatus" id="transfer" value="transfer">Transfer
Skript
<script>
$(document).ready(function () {
$('input:radio[name=bedStatus]:checked').change(function () {
if ($("input[name='bedStatus']:checked").val() == 'allot') {
alert("Allot Thai Gayo Bhai");
}
if ($("input[name='bedStatus']:checked").val() == 'transfer') {
alert("Transfer Thai Gayo");
}
});
});
</script>
if($("input[name='bedStatus']:checked").val() == 'allot')
kann geschrieben werdenif($("input[name='bedStatus']").val() == 'allot')
Antworten:
Sie können verwenden,
this
was sich auf das aktuelleinput
Element bezieht .http://jsfiddle.net/4gZAT/
Beachten Sie, dass Sie den Wert
allot
in beiden:radio
Fällen vergleichen, wenn Anweisungen und Selektor veraltet sind.Falls Sie jQuery nicht verwenden, können Sie die Methoden
document.querySelectorAll
undHTMLElement.addEventListener
verwenden:quelle
:radio
Selektor ist nicht veraltet (in jQuery).this
Wert interessieren oder den umgebenden Kontextwertthis
in Ihrem Handler verwenden möchten, den dieses Snippet verwendetthis
. Und zu behaupten, reguläre Funktionen zu verwenden, sei "alte schlechte Praxis", ist absolut bedeutungslos! Außerdem unterstützen ältere Browser die Pfeilfunktionssyntax nichtArray#includes
und man sollte einen Transpiler und eine Unterlegscheibe verwenden, um ältere Browser zu unterstützen. Warum eine einfache Antwort, die nichts speziell mit Pfeilfunktionen zu tun hat, kompliziert machen?this
benutze ichevent.target
.Eine Anpassung der obigen Antwort ...
http://jsfiddle.net/xwYx9
quelle
.on()
wirklich Gewinne in Bezug auf die oben genannten, aber wenn man dynamische Selektoren berücksichtigt, ist es sicherlich der einzige Weg, um in jQuery 1.7+on
hat Vorteile, wenn Sie einen Kontext für die Ereignisdelegierung oder sogar für dynamische Selektoren bereitstellen, wie Sie sagten, aber die Art und Weise, wie Sie ihn geschrieben haben, entspricht genau der obigen Antwort.Eine einfachere und sauberere Möglichkeit wäre, eine Klasse mit der Antwort von @ Ohgodwhy zu verwenden
Skript
quelle
JS Fiddle
quelle
$(this).is(":checked")
Gebrauchthis.checked
. Es ist reines JS und daher viel schneller.Verwenden Sie die Onchage- Funktion
quelle
Einfache ES6- Lösung (nur Javascript) .
quelle
quelle
quelle
Wenn die Optionsfelder dynamisch hinzugefügt werden, möchten Sie dies möglicherweise verwenden
quelle
quelle