Saya perlu memeriksa checked
properti kotak centang dan melakukan tindakan berdasarkan properti yang diperiksa menggunakan jQuery.
Misalnya, jika kotak centang usia dicentang, maka saya perlu menunjukkan kotak teks untuk memasukkan usia, selain itu sembunyikan kotak teks.
Tetapi kode berikut kembali false
secara default:
if ($('#isAgeSelected').attr('checked'))
{
$("#txtAge").show();
}
else
{
$("#txtAge").hide();
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" id="isAgeSelected"/>
<div id="txtAge" style="display:none">
Age is selected
</div>
Bagaimana cara saya berhasil menanyakan checked
properti?
javascript
jquery
html
checkbox
Prasad
sumber
sumber
$('#isAgeSelected').checked
$('#isAgeSelected')[0].checked
Jawaban:
The
checked
properti dari elemen kotak centang DOM akan memberikanchecked
keadaan elemen.Dengan kode yang ada, Anda dapat melakukan ini:
Namun, ada cara yang jauh lebih cantik untuk melakukan ini, menggunakan
toggle
:sumber
is(':checked')
bisnis ini.this.checked
bukan jQuery, seperti yang diminta OP. Selain itu, ini hanya berfungsi ketika pengguna mengklik kotak centang, yang bukan bagian dari pertanyaan. Pertanyaannya adalah, sekali lagi,How to check whether a checkbox is checked in jQuery?
pada waktu tertentu dengan atau tanpa mengklik kotak centang dan di jQuery.Gunakan fungsi jQuery's () :
sumber
$("#txtAge").toggle($("#isAgeSelected").is(':checked'))
.visible
"properti" ( properti ? maksud Anda metode ?) karena elemen tanpa HTML memiliki properti yang terlihat . Mereka memilikidisplay
properti gaya dan sedikit lebih kompleks daripada on / off.Menggunakan jQuery> 1.6
Menggunakan metode properti baru:
sumber
.prop
metode ini adalah cara yang dirancang untuk memeriksa alat peraga. ... ... Jika Anda akan melakukan.is(":checked")
pendekatan, itu bagus, tetapi itu bukan cara yang dirancang untuk melakukannya menggunakan jquery. Baik?.is(":checked")
dan.prop("checked")
keduanya merupakan cara yang valid untuk mendapatkan hasil yang sama di jQuery,.is
akan bekerja di semua versi,.prop
membutuhkan 1.6+.attr('checked')
di jQuery 1.11.3, Anda tidak terdefinisi, di mana jika Anda gunakan.prop('checked')
, Anda akan menjadi benar / salah. Saya tidak melihat mengapa mereka mengubahnya agar berfungsi seperti ini ketika browser lama tidak dapat mendukung versi jQuery kemudian yang diperkenalkan.prop()
dan karenanya perlu.attr()
. Satu-satunya rahmat yang menyelamatkan adalah bahwa browser lama (yaitu IE 8) tidak dapat mendukung apa pun> jQuery 1.9. Semoga mereka tidak melakukan ini (make.attr('checked')
= undefined) dalam versi itu! Untungnya, selalu adathis.checked
.jQuery 1.6+
jQuery 1.5 dan di bawah
Versi jQuery apa pun
Semua kredit jatuh ke Xian .
sumber
this.checked
menggunakan Javascript lurus. Tapi saya suka jawaban lintas-jQuery-versi!Saya menggunakan ini dan ini berfungsi dengan sangat baik:
Catatan: Jika kotak centang dicentang maka akan mengembalikan true jika tidak terdefinisi, jadi lebih baik periksa nilai "TRUE".
sumber
.attr()
! Kalau saja mereka hanya meninggalkan cukup baik saja .... Menemukan jawaban lain di sini mengatakan Anda hanya dapat menggunakanthis.checked
untuk solusi lintas-jQuery, karena itu pada dasarnya hanya Javascript.Menggunakan:
sumber
Sejak jQuery 1.6, perilaku
jQuery.attr()
telah berubah dan pengguna disarankan untuk tidak menggunakannya untuk mengambil status elemen yang diperiksa. Sebagai gantinya, Anda harus menggunakanjQuery.prop()
:Dua kemungkinan lain adalah:
sumber
Ini bekerja untuk saya:
Di mana
isAgeSelected
id kontrol.Juga, jawaban @ karim79 berfungsi dengan baik. Saya tidak yakin apa yang saya lewatkan pada saat saya mengujinya.
Catatan, ini adalah jawaban menggunakan Microsoft Ajax, bukan jQuery
sumber
== true
Jika Anda menggunakan versi jquery yang diperbarui, Anda harus mencari
.prop
metode untuk menyelesaikan masalah Anda:$('#isAgeSelected').prop('checked')
akan kembalitrue
jika dicentang danfalse
jika tidak dicentang. Saya mengkonfirmasinya dan saya menemukan masalah ini sebelumnya.$('#isAgeSelected').attr('checked')
dan$('#isAgeSelected').is('checked')
kembaliundefined
yang bukan jawaban yang layak untuk situasi ini. Jadi lakukan seperti yang diberikan di bawah ini.Semoga bisa membantu :)) - Terima kasih.
sumber
$('#isAgeSelected').checked
?Menggunakan
Click
pengendali event untuk properti kotak centang tidak dapat diandalkan, karenachecked
properti dapat berubah selama eksekusi pengendali event itu sendiri!Idealnya, Anda ingin memasukkan kode Anda ke
change
event handler seperti dipecat setiap kali nilai kotak centang diubah (terlepas dari bagaimana melakukannya).sumber
.on()
metode ini adalah metode yang disukai untuk melampirkan penangan acara ke dokumen.Menggunakan:
Ini dapat membantu jika Anda ingin tindakan yang diperlukan harus dilakukan hanya ketika Anda menandai kotak tidak pada saat Anda menghapus centang.
sumber
Saya memutuskan untuk mengirim jawaban tentang cara melakukan hal yang persis sama tanpa jQuery. Hanya karena aku seorang pemberontak.
Pertama, Anda mendapatkan kedua elemen dengan ID mereka. Kemudian Anda menetapkan acara kotak centang
onchange
fungsi yang memeriksa apakah kotak centang diperiksa dan mengaturhidden
properti bidang teks usia secara tepat. Dalam contoh itu menggunakan operator ternary.Ini biola bagi Anda untuk mengujinya.
Tambahan
Jika kompatibilitas lintas-browser adalah masalah maka saya mengusulkan untuk mengatur
display
properti CSS ke none dan inline .Lebih lambat tapi kompatibel lintas-browser.
sumber
.hidden
tidak terlalu lintas-browser, meskipun saya suka solusi ini :)style
. Itu sangat disayangkan, karena.hidden
kinerja jauh lebih baik .Saya yakin Anda bisa melakukan ini:
sumber
Saya berlari ke masalah yang sama persis. Saya memiliki kotak centang ASP.NET
Dalam kode jQuery saya menggunakan pemilih berikut untuk memeriksa apakah kotak centang dicentang atau tidak, dan tampaknya berfungsi seperti pesona.
Saya yakin Anda juga bisa menggunakan ID bukan CssClass,
Saya harap ini membantu Anda.
sumber
Ada banyak cara untuk memeriksa apakah kotak centang dicentang atau tidak:
Cara memeriksa menggunakan jQuery
Lihat contoh atau juga dokumentasikan:
http://api.jquery.com/attr/
http://api.jquery.com/prop/
sumber
Kode ini akan membantu Anda
sumber
Ini bekerja untuk saya:
sumber
Ini adalah beberapa metode berbeda untuk melakukan hal yang sama:
sumber
Gunakan ini:
Panjangnya lebih besar dari nol jika kotak centang dicentang.
sumber
Cara saya melakukan ini adalah:
sumber
Ini mengembalikan
true
jika input dicentang danfalse
jika tidak.sumber
.attr('checked')
itu tidak selalu mengembalikan keadaan yang benar. Sebagai per Salman A 's jawaban (dan mungkin orang lain), itu adalah pilihan yang lebih aman untuk menggunakan.prop('checked')
sebagai gantinya. Selain itu, dimungkinkan juga untuk menyatakanundefined
sebagaivar undefined = 'checked';
..prop('checked')
sepertinya jawaban yang lebih baik sekarang. Itu tidak dapat diandalkan pada saat itu ditulis. Saya tidak mengerti, juga tidak berpikir itu adalah ide yang baik untuk mendeklarasikan ulang tidak terdefinisi.typeof (x) !== "undefined"
sumber
Kamu bisa menggunakan:
Keduanya harus bekerja.
sumber
1) Jika markup HTML Anda adalah:
attr digunakan:
Jika prop digunakan:
2) Jika markup HTML Anda adalah:
attr digunakan:
Prop digunakan:
sumber
Contoh ini untuk tombol.
Coba yang berikut ini:
sumber
Jawaban teratas tidak melakukannya untuk saya. Ini melakukan:
Pada dasarnya ketika elemen # li_13 diklik, ia memeriksa apakah elemen # setuju (yang merupakan kotak centang) diperiksa dengan menggunakan
.attr('checked')
fungsi. Jika kemudian fadeIn elemen #saveForm, dan jika tidak fadeOut elemen saveForm.sumber
Saya menggunakan ini:
sumber
Meskipun Anda telah mengusulkan solusi JavaScript untuk masalah Anda (menampilkan
textbox
ketikacheckbox
adalahchecked
), masalah ini dapat diselesaikan hanya dengan css . Dengan pendekatan ini, formulir Anda berfungsi untuk pengguna yang telah menonaktifkan JavaScript.Dengan asumsi Anda memiliki HTML berikut:
Anda dapat menggunakan CSS berikut untuk mencapai fungsionalitas yang diinginkan:
Untuk skenario lain, Anda mungkin memikirkan penyeleksi CSS yang tepat.
Berikut adalah biola untuk menunjukkan pendekatan ini .
sumber
Toggle: 0/1 atau yang lain
sumber
Saya pikir itu akan menjadi yang sederhana
sumber