Saya memiliki 3 tombol radio di halaman web saya, seperti di bawah ini:
<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>
Di jQuery, saya ingin mendapatkan nilai dari tombol radio yang dipilih ketika salah satu dari ketiganya diklik. Di jQuery kita memiliki pemilih id (#) dan class (.), Tetapi bagaimana jika saya ingin menemukan tombol radio dengan namanya, seperti di bawah ini?
$("<radiobutton name attribute>").click(function(){});
Tolong beri tahu saya cara mengatasi masalah ini.
javascript
jquery
html
radio-button
Prashant
sumber
sumber
document.querySelectorAll("input:radio[name=theme]").forEach(function() { this.onclick=function() { var value = this.value; }; });
Jawaban:
Ini harus dilakukan, semua ini ada dalam dokumentasi , yang memiliki contoh yang sangat mirip dengan ini:
Saya juga harus mencatat Anda memiliki beberapa ID identik dalam cuplikan itu. Ini adalah HTML yang tidak valid. Gunakan kelas untuk mengelompokkan set elemen, bukan ID, karena mereka harus unik.
sumber
[type='radio']
sebagai gantinya:radio
jQuery dapat mengambil keuntungan dari peningkatan kinerja yang disediakan olehquerySelectorAll()
metode DOM asli .Untuk menentukan tombol radio mana yang dicentang, coba ini:
Acara akan ditangkap untuk semua tombol radio di grup dan nilai tombol yang dipilih akan ditempatkan di val.
Pembaruan: Setelah memposting, saya memutuskan bahwa jawaban Paolo di atas lebih baik, karena menggunakan lebih sedikit DOM traversal. Saya membiarkan jawaban ini berdiri karena ini menunjukkan cara mendapatkan elemen yang dipilih dengan cara yang kompatibel lintas-browser.
sumber
[type='radio']
sebagai gantinya:radio
jQuery dapat mengambil keuntungan dari peningkatan kinerja yang disediakan olehquerySelectorAll()
metode DOM asli .:checked
untuk menemukan tombol mana yang dicentang, misalnya, dengan formulir ajang pengendali acara di manathis
kata kunci tidak memetakan ke tombol yang diklik.sumber
$("input[name=theme]:checked").val();
(meninggalkan:radio
bagian luar dan tampaknya berfungsi dengan baik di IE, FF, Safari dan Chrome. Saya harus bekerja dengan jQ v 1.3 ... Tentu saja, itu berarti hanya ada satu elemen bernama 'tema'cara lain
sumber
$themeRadios = $('input:radio[name=theme'])
Untuk mengatur event handler dan kemudian mendapatkan nilai dengan menggunakan filter, mis$themeRadios.filter(":checked").val()
.Ini sangat bagus untuk saya. Misalnya Anda memiliki dua tombol radio dengan "nama" yang sama, dan Anda hanya ingin mendapatkan nilai yang dicentang. Anda dapat mencoba yang ini.
sumber
Kode berikut digunakan untuk mendapatkan nilai tombol radio yang dipilih berdasarkan nama
Adnan terima kasih
sumber
Saya menemukan pertanyaan ini ketika saya meneliti kesalahan setelah saya memutakhirkan dari 1.7.2 dari jQuery ke 1.8.2. Saya menambahkan jawaban saya karena ada perubahan pada jQuery 1.8 dan lebih tinggi yang mengubah cara pertanyaan ini dijawab sekarang.
Dengan jQuery 1.8 mereka telah mencabut pseudo-selectors seperti: radio,: checkbox,: text.
Untuk melakukan hal di atas sekarang ganti saja
:radio
dengan[type=radio]
.Jadi jawaban Anda sekarang menjadi untuk semua versi jQuery 1.8 ke atas:
Anda dapat membaca tentang perubahan pada readme 1.8 dan tiket spesifik untuk perubahan ini serta memahami mengapa di : halaman pemilih radio di bawah bagian Informasi Tambahan.
sumber
$("input[type='radio'][name='theme']:checked")
Bagi siapa pun yang tidak ingin memasukkan perpustakaan untuk melakukan sesuatu yang sangat sederhana:
jsfiddle
Untuk tinjauan umum kinerja jawaban saat ini, periksa di sini
sumber
Jika Anda ingin mengetahui nilai dari tombol radio default yang dipilih sebelum acara klik, coba ini:
sumber
Anda dapat menggunakan fungsi filter jika Anda memiliki lebih dari satu grup radio di halaman, seperti di bawah ini
Ini url biola
http://jsfiddle.net/h6ye7/67/
sumber
sumber
Jika Anda menginginkan nilai benar / salah, gunakan ini:
sumber
Mungkin sesuatu seperti ini?
Ketika Anda mengklik tombol radio apa pun, saya percaya itu akan berakhir dipilih, jadi ini akan dipanggil untuk tombol radio yang dipilih.
sumber
Jika Anda memiliki lebih dari satu grup tombol radio pada halaman yang sama Anda juga dapat mencoba ini untuk mendapatkan nilai tombol radio:
Bersulang!
sumber
juga dapat menggunakan kelas CSS untuk menentukan rentang tombol radio dan kemudian menggunakan yang berikut untuk menentukan nilainya
sumber
Ini bekerja untuk saya ..
HTML:
Jquery:
Semoga ini bisa membantu ..
sumber
sumber
Anda mungkin memperhatikan menggunakan pemilih kelas untuk mendapatkan nilai
ASP.NET RadioButton
kontrol selalu kosong dan inilah alasannya.Anda membuat
RadioButton
kontrolASP.NET
seperti di bawah ini:Dan
ASP.NET
menjadikan HTML berikut untuk AndaRadioButton
Karena
ASP.NET
kami tidak ingin menggunakanRadioButton
nama kontrol atau id karena mereka dapat berubah karena alasan apa pun di luar kendali pengguna (perubahan nama wadah, nama formulir, nama kontrol pengguna , ...) seperti yang Anda lihat dalam kode di atas.Satu-satunya cara yang layak yang tersisa untuk mendapatkan nilai dari
RadioButton
menggunakan jQuery adalah menggunakan kelas css seperti yang disebutkan dalam jawaban ini untuk pertanyaan yang sama sekali tidak terkait sebagai berikutsumber