Bagaimana cara mengatur opsi radio yang dicek overload dengan jQuery?
Perlu memeriksa apakah tidak ada default yang ditetapkan dan kemudian menetapkan default
jquery
radio-button
Phill Pafford
sumber
sumber
Jawaban:
Katakanlah Anda memiliki tombol radio seperti ini, misalnya:
Dan Anda ingin memeriksa yang dengan nilai "Pria" jika tidak ada radio yang diperiksa:
sumber
$radios.removeAttr('checked')
sebelum penyangga. Ini akan membingungkan browser dan nilai yang diposting.Bagaimana dengan satu liner?
sumber
Yang ini akan menyebabkan kegagalan form.reset ():
Tapi yang ini berhasil:
sumber
JQuery sebenarnya memiliki dua cara untuk mengatur status diperiksa untuk radio dan kotak centang dan itu tergantung pada apakah Anda menggunakan atribut nilai dalam markup HTML atau tidak:
Jika mereka memiliki atribut nilai:
Jika mereka tidak memiliki atribut nilai:
Keterangan lebih lanjut
Dalam kasus pertama, kami menentukan seluruh grup radio menggunakan nama dan memberitahu JQuery untuk menemukan radio untuk memilih menggunakan fungsi val. Fungsi val mengambil array 1-elemen dan menemukan radio dengan nilai yang cocok, setelnya dicentang = true. Orang lain dengan nama yang sama akan dipilih. Jika tidak ada radio dengan nilai yang cocok maka semua akan dipilih. Jika ada beberapa radio dengan nama dan nilai yang sama maka yang terakhir akan dipilih dan yang lainnya akan dipilih.
Jika Anda tidak menggunakan atribut nilai untuk radio maka Anda perlu menggunakan ID unik untuk memilih radio tertentu dalam grup. Dalam hal ini, Anda perlu menggunakan fungsi penyangga untuk menyetel properti "dicentang". Banyak orang tidak menggunakan atribut nilai dengan kotak centang sehingga # 2 lebih berlaku untuk kotak centang daripada radio. Juga perhatikan bahwa karena kotak centang tidak membentuk grup ketika mereka memiliki nama yang sama, Anda dapat melakukannya
$("[name=myCheckBox").prop("checked", true);
untuk kotak centang.Anda dapat bermain dengan kode ini di sini: http://jsbin.com/OSULAtu/1/edit?html,output
sumber
Saya menyukai jawabannya oleh @Amc. Saya menemukan ungkapan itu dapat diringkas lebih lanjut untuk tidak menggunakan panggilan filter () (@chaiko rupanya juga memperhatikan ini). Juga, prop () adalah cara untuk pergi vs attr () untuk jQuery v1.6 +, lihat dokumentasi jQuery untuk prop () untuk praktik terbaik resmi pada subjek.
Pertimbangkan tag input yang sama dari jawaban @Paolo Bergantino.
Lapisan satu yang diperbarui mungkin membaca sesuatu seperti:
sumber
Saya pikir Anda dapat berasumsi, nama itu unik dan semua radio dalam grup memiliki nama yang sama. Kemudian Anda dapat menggunakan dukungan jQuery seperti itu:
Catatan: Passing array itu penting.
Versi terkondisi:
sumber
$("*")
akan cocok dengan semua hal sehingga Anda harus menggunakan tipe sewaan$("input")
atau ID akan ideal karena DOM memiliki panggilan asli untuk mendapatkan elemen oleh iddocument.querySelectorAll
membuat semua pekerjaan.$("input[name=gender]")
atau$("input[name=gender]:radio")
atau (untuk browser modern)$("input[name=gender][type=radio]")
Jika Anda ingin benar-benar dinamis dan memilih radio yang sesuai dengan data yang masuk, ini berfungsi. Itu menggunakan nilai gender dari data yang diteruskan atau menggunakan default.
sumber
Solusi JS asli:
http://jsfiddle.net/jzQvH/75/
HTML:
sumber
Dan jika Anda ingin memberikan nilai dari model Anda dan ingin memilih tombol radio dari grup berdasarkan nilai, daripada menggunakan:
Jquery:
Dan html:
sumber
Tidak perlu semua itu. Dengan HTML sederhana dan lama Anda dapat mencapai apa yang Anda inginkan. Jika Anda membiarkan radio yang ingin Anda periksa secara default seperti ini:
<input type='radio' name='gender' checked='true' value='Male'>
Ketika halaman dimuat, itu akan datang diperiksa.
sumber
sumber
Berikut ini contoh dengan metode di atas:
Dalam javascript:
sumber
Perhatikan perilaku ini saat mendapatkan nilai input radio:
Jadi
$('input[name="myRadio"]').val()
tidak mengembalikan nilai dicentang dari input radio, seperti yang Anda harapkan - itu mengembalikan nilai tombol radio pertama.sumber
De esta forma Jquery obtiene solo el elemento diperiksa
sumber
// Jika Anda melakukannya di javascript atau kerangka kerja seperti tulang punggung, Anda akan menemukan ini banyak Anda bisa memiliki sesuatu seperti ini
sementara
tidak akan berfungsi,
akan.
pemilih Anda bisa seperti yang direkomendasikan orang lain di atas.
sumber
Ini berfungsi untuk beberapa tombol radio
sumber