Saya memiliki tiga tombol radio dengan nama yang sama dan nilai yang berbeda, ketika saya mengklik tombol radio ketiga, kotak centang dan kotak teks akan dinonaktifkan, tetapi ketika saya memilih dua tombol radio lainnya, itu harus ditampilkan. Saya butuh bantuan di Jquery. muka....
<form name="checkuserradio">
<input type="radio" value="1" name="userradiobtn" id="userradiobtn"/>
<input type="radio" value="2" name="userradiobtn" id="userradiobtn"/>
<input type="radio" value="3" name="userradiobtn" id="userradiobtn"/>
<input type="checkbox" value="4" name="chkbox" />
<input type="text" name="usertxtbox" id="usertxtbox" />
</form>
name
s bisa identik, tetapiid
s harus unik.Jawaban:
HTML
Javascript
sumber
i
diteruskan darifunction(i)
melalui JQueryeach()
.i==2
digunakan untuk mengakses tombol radio ke-3. Lihat kode saya.<span id="radiobutt">
- Sepupu RadioHead?Tidak terlalu diperlukan, tetapi sedikit perbaikan pada kode okw yang akan membuat pemanggilan fungsi lebih cepat (karena Anda memindahkan kondisional di luar pemanggilan fungsi).
sumber
Utas ini agak tua tetapi informasinya harus diperbarui.
http://api.jquery.com/attr/
sumber
removeProp
untuk properti yang dinonaktifkan. Dokumen jQuery mengatakan untuk digunakanprop("disabled", false);
sebagai gantinya. api.jquery.com/prop/#prop-propertyName-valueSaya tidak yakin mengapa beberapa solusi ini menggunakan .each () - itu tidak perlu.
Berikut adalah beberapa kode yang berfungsi yang menonaktifkan jika kotak centang ke-3 diklik, jika tidak, hapus atribut yang dinonaktifkan.
Catatan: Saya menambahkan id ke kotak centang. Juga, ingat bahwa id harus unik di dokumen Anda, jadi hapus id pada radiobuttons, atau buat unik
sumber
each()
digunakan karena kami ingin mendapatkan tombol radio ke-3. Kita juga bisa menggunakannya$("input[type=radio]:eq(2)")
. Metode Anda mengidentifikasi tombol radio berdasarkan nilai, yang tentu saja juga valid. :)Saya tahu ini bukan kebiasaan yang baik untuk menjawab pertanyaan lama tetapi saya memberikan jawaban ini untuk orang-orang yang akan melihat pertanyaan itu setelahnya.
Cara terbaik untuk mengubah status di JQuery sekarang adalah melalui
Silakan periksa tautan ini untuk ilustrasi lengkap. Nonaktifkan / aktifkan input dengan jQuery?
sumber
Saya akan melakukannya sedikit berbeda
Perhatikan atribut kelas
Dengan cara ini jika Anda perlu menambahkan lebih banyak tombol radio, Anda tidak perlu khawatir tentang mengubah javascript
sumber
Saya menduga Anda mungkin ingin mengikat acara "klik" ke sejumlah tombol radio, membaca nilai dari tombol radio yang diklik dan tergantung pada nilainya, nonaktifkan / aktifkan kotak centang dan atau kotak teks.
sumber
Maaf karena terlambat datang ke pesta, tapi saya melihat ada ruang untuk perbaikan di sini. Bukan tentang "nonaktifkan kotak teks", tetapi tentang pemilihan kotak radio dan penyederhanaan kode, membuatnya menjadi bukti masa depan yang lebih baik, untuk perubahan selanjutnya.
Pertama-tama, Anda tidak boleh menggunakan .each () dan menggunakan indeks untuk menunjukkan tombol radio tertentu. Jika Anda bekerja dengan serangkaian tombol radio yang dinamis atau jika Anda menambah atau menghapus beberapa tombol radio setelahnya, kode Anda akan bereaksi pada tombol yang salah!
Selanjutnya, tetapi itu tidak mungkin terjadi ketika OP dibuat, saya lebih suka menggunakan .on ('click', function () {...}) daripada click ... http: //api.jquery. com / on /
Lst but not least, juga kode dapat dibuat lebih sederhana dan bukti masa depan dengan memilih tombol radio berdasarkan namanya (tapi itu sudah muncul di posting).
Jadi saya berakhir dengan kode berikut.
HTML (berdasarkan kode okw)
Kode JS
sumber
MVC 4 @ Html.CheckBoxUntuk umumnya orang ingin beraksi di centang dan hapus centang dari mvc checkbox.
Anda dapat menentukan id untuk kontrol yang ingin Anda ubah dan di javascript lakukan hal berikut
Anda juga dapat mengubah properti seperti
sumber
Tampilkan cuplikan kode
sumber
mendapatkan nilai tombol radio dan cocok dengan masing-masing jika 3 maka dinonaktifkan
checkbox and textbox
.sumber