Mengapa saya bergumul dengan ini?
Saya memiliki nilai: 5
Bagaimana cara memeriksa tombol radio grup "grup saya" dengan nilai 5?
$("input[name=mygroup]").val(5); // doesn't work?
Dengan bantuan pemilih atribut, Anda dapat memilih elemen input dengan nilai yang sesuai. Maka Anda harus mengatur atribut secara eksplisit, menggunakan .attr
:
var value = 5;
$("input[name=mygroup][value=" + value + "]").attr('checked', 'checked');
Sejak jQuery 1.6, Anda juga dapat menggunakan .prop
metode dengan nilai boolean (ini harus menjadi metode yang disukai):
$("input[name=mygroup][value=" + value + "]").prop('checked', true);
Ingat Anda pertama-tama perlu menghapus atribut yang dicentang dari salah satu tombol radio di bawah satu grup tombol radio saja, maka Anda akan dapat menambahkan properti / atribut yang dicentang ke salah satu tombol radio di grup tombol radio tersebut.
Kode Untuk Menghapus Atribut yang Diperiksa dari semua tombol radio dari satu grup tombol radio -
$('[name="radioSelectionName"]').removeAttr('checked');
.is
tidak akan membantu di sini, tapi saya setuju.prop
. Itu tidak tersedia saat itu;) Akan memperbarui jawaban saya. Terima kasih!.val()
mendukung nilai pengaturan di radio atau grup kotak centang. Cara ini secara teknis berfungsi, tetapi bundaran dan jauh lebih mudah dibaca / berkesan.Ada cara yang lebih baik untuk memeriksa radio dan kotak centang; Anda harus meneruskan array nilai ke metode val alih-alih nilai mentah
Catatan: Jika Anda hanya meneruskan nilai dengan sendirinya (tanpa berada di dalam array ), itu akan menghasilkan semua nilai "grup saya" yang disetel ke nilai tersebut.
Berikut ini adalah dokumen jQuery yang menjelaskan cara kerjanya: http://api.jquery.com/val/#val-value
Dan
.val([...])
juga bekerja dengan unsur-unsur bentuk seperti<input type="checkbox">
,<input type="radio">
, dan<option>
s dalam sebuah<select>
.Fiddle mendemonstrasikan ini berfungsi: https://jsfiddle.net/92nekvp3/
sumber
Coba ini:
Demo JS Fiddle .
sumber
sumber
Ketika Anda mengubah nilai atribut seperti yang disebutkan di atas
change
acara tidak dipicu jadi jika diperlukan karena beberapa alasan Anda dapat memicunya seperti itusumber
$("input[name='RadioTest'][value='2']").prop('checked', true);
Demo biola JS
sumber
Atau Anda bisa menulis atribut nilai padanya:
Ini bekerja untuk saya.
sumber
sumber
Versi JavaScript murni:
sumber
sumber