Saya memiliki dua tombol radio pada acara perubahan. Saya ingin mengubah tombol. Bagaimana mungkin? Kode Saya
<input type="radio" name="bedStatus" id="allot" checked="checked" value="allot">Allot
<input type="radio" name="bedStatus" id="transfer" value="transfer">Transfer
Naskah
<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')
dapat ditulisif($("input[name='bedStatus']").val() == 'allot')
Jawaban:
Anda dapat menggunakan
this
yang merujuk keinput
elemen saat ini .http://jsfiddle.net/4gZAT/
Perhatikan bahwa Anda membandingkan nilai terhadap
allot
kedua jika pernyataan dan:radio
pemilih sudah usang.Jika Anda tidak menggunakan jQuery, Anda dapat menggunakan
document.querySelectorAll
danHTMLElement.addEventListener
metode:sumber
:radio
pemilih tidak ditinggalkan (di jQuery).this
nilai atau Anda ingin menggunakan nilai konteks sekitarnyathis
di handler Anda, potongan ini digunakanthis
. Dan mengklaim menggunakan fungsi biasa adalah "praktik buruk lama" sama sekali tidak ada artinya! Juga, browser lama tidak mendukung sintaks fungsi panah danArray#includes
dan seseorang harus menggunakan transpiler dan shim untuk mendukung browser lama. Mengapa membuat jawaban sederhana yang tidak ada hubungannya dengan fungsi panah rumit?this
, saya gunakanevent.target
.Adaptasi dari jawaban di atas ...
http://jsfiddle.net/xwYx9
sumber
.on()
benar-benar mendapatkan keuntungan dalam kaitannya dengan hal di atas, namun, ketika mempertimbangkan pemilih dinamis, itu pasti satu-satunya cara untuk masuk di jQuery 1.7+on
memiliki keuntungan ketika Anda memberikan konteks untuk delegasi acara, atau bahkan untuk penyeleksi dinamis seperti yang Anda katakan, tetapi cara Anda menulisnya, persis sama dengan jawaban di atas.Cara yang lebih sederhana dan bersih adalah menggunakan kelas dengan jawaban @ Ohgodwhy
Naskah
sumber
JS Fiddle
sumber
$(this).is(":checked")
digunakanthis.checked
. Ini JS murni dan jadi jauh lebih cepat.Gunakan fungsi onchage
sumber
Solusi ES6 sederhana (hanya javascript) .
sumber
sumber
sumber
Jika tombol radio ditambahkan secara dinamis, Anda mungkin ingin menggunakan ini
sumber
sumber