Mam dwa przyciski opcji na zdarzeniu zmiany Chcę przycisk zmiany Jak to możliwe? Mój kod
<input type="radio" name="bedStatus" id="allot" checked="checked" value="allot">Allot
<input type="radio" name="bedStatus" id="transfer" value="transfer">Transfer
Scenariusz
<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')
można napisaćif($("input[name='bedStatus']").val() == 'allot')
Odpowiedzi:
Możesz użyć,
this
który odnosi się do bieżącegoinput
elementu.http://jsfiddle.net/4gZAT/
Zauważ, że porównujesz wartość
allot
zarówno w przypadku instrukcji, jak i:radio
selektora jest przestarzała.Jeśli nie używasz jQuery, możesz użyć metod
document.querySelectorAll
iHTMLElement.addEventListener
:źródło
:radio
Selektora nie jest przestarzała (jQuery).this
wartości, albo chcesz użyć otaczającejthis
wartości kontekstu w module obsługi, używa tego fragmentu koduthis
. A twierdzenie, że używanie regularnych funkcji jest „starą złą praktyką”, jest zupełnie bez znaczenia! Ponadto starsze przeglądarki nie obsługują składni funkcji strzałekArray#includes
i do obsługi starszych przeglądarek należy używać transpilatora i podkładki dystansowej. Po co tworzyć proste odpowiedzi, które nie mają nic wspólnego ze skomplikowanymi funkcjami strzałek?this
używamevent.target
.Dostosowanie powyższej odpowiedzi ...
http://jsfiddle.net/xwYx9
źródło
.on()
naprawdę zyskał w stosunku do powyższego, jednak biorąc pod uwagę dynamiczne selektory, jest to z pewnością jedyny sposób, aby przejść do jQueryon
zyskuje, gdy zapewniasz kontekst dla delegowania zdarzeń, a nawet dla dynamicznych selektorów, jak powiedziałeś, ale sposób, w jaki to napisałeś, jest dokładnie taki sam jak powyższa odpowiedź.Prostszym i czystszym sposobem byłoby użycie klasy z odpowiedzią @ Ohgodwhy
Scenariusz
źródło
JS Fiddle
źródło
$(this).is(":checked")
używaćthis.checked
. To czysty JS, a więc jest o wiele szybszy.Użyj funkcji onchage
źródło
Proste rozwiązanie ES6 (tylko javascript) .
źródło
źródło
źródło
Jeśli przyciski opcji są dodawane dynamicznie, możesz z nich skorzystać
źródło
źródło