Saya ingin memeriksa apakah kotak centang baru saja tidak dicentang, ketika pengguna mengkliknya. Alasan untuk ini adalah karena saya ingin melakukan validasi ketika pengguna menghapus centang pada kotak centang. Karena setidaknya satu kotak centang perlu diperiksa. Jadi jika dia tidak mencentang yang terakhir, maka secara otomatis memeriksa dirinya sendiri lagi.
Dengan jQuery saya dapat dengan mudah mengetahui apakah itu dicentang atau tidak:
$('#check1').click(function() {
if($(this).is(':checked'))
alert('checked');
else
alert('unchecked');
});
Tetapi saya sebenarnya hanya ingin memiliki pernyataan if yang memeriksa apakah kotak centang baru saja tidak dicentang.
Jadi saya pikir saya bisa melakukannya dengan kode berikut:
$('#check2').click(function() {
if($(this).not(':checked'))
alert('unchecked');
else
alert('checked');
});
Tapi ini akan selalu menampilkan pesan 'tidak dicentang'. Tidak seperti yang saya harapkan ...
demo: http://jsfiddle.net/tVM5H/
Jadi akhirnya saya membutuhkan sesuatu seperti:
$('#check2').click(function() {
if($(this).not(':checked')) {
// Got unchecked, so something!!!
}
});
Tapi jelas ini tidak berhasil. Saya lebih suka tidak ingin menggunakan contoh pertama, karena kemudian saya akan memiliki pernyataan 'else' yang tidak perlu ketika saya hanya membutuhkan satu pernyataan 'jika'.
Jadi hal pertama, apakah ini bug jQuery? Sebab bagi saya itu perilaku yang tidak terduga. Dan kedua, adakah ide untuk alternatif yang baik?
$(document).ready(function() { $("#check1").click(function() { var checked = $(this).is(':checked'); if (checked) { alert('checked'); } else { alert('unchecked'); } }); });
sumber
jQuery untuk memeriksa diperiksa? Betulkah?
if(!this.checked) {
Jangan gunakan bazoka untuk melakukan pekerjaan pisau cukur.
sumber
$(this)[0].checked
.checked
mereka miliki.is('checked')
tidak akan bekerja dengan sendirinya.<script type="text/javascript"> if(jQuery('input[id=input_id]').is(':checked')){ // Your Statment }else{ // Your Statment } OR if(jQuery('input[name=input_name]').is(':checked')){ // Your Statment }else{ // Your Statment } </script>
Kode diambil dari sini: http://chandreshrana.blogspot.in/2015/10/how-to-check-if-checkbox-is-checked-or.html
sumber
Lihat beberapa jawaban untuk pertanyaan ini - saya pikir itu mungkin berlaku untuk Anda:
bagaimana menjalankan fungsi klik setelah perilaku default sebuah elemen
Saya pikir Anda mengalami ketidakkonsistenan dalam implementasi
onclick
fungsi browser . Beberapa memilih untuk mengaktifkan kotak centang sebelum acara dijalankan dan beberapa setelahnya.sumber
Jawabannya sudah diposting. Tapi kita juga bisa menggunakan jquery dengan cara ini
demo
$(function(){ $('#check1').click(function() { if($('#check1').attr('checked')) alert('checked'); else alert('unchecked'); }); $('#check2').click(function() { if(!$('#check2').attr('checked')) alert('unchecked'); else alert('checked'); }); });
sumber
Lakukan seperti ini
if (typeof $(this).attr("checked") == "undefined" ) // To check if checkbox is checked if( $(this).attr("checked")=="checked")
sumber
this.checked
. Baris pertama tidak perlutypeof
ada (tidak akan pernah memunculkan aReferencError
). Anda juga harus menggunakan,prop()
bukanattr()
, yang akan mengembalikan boolean, membuat yang kedua juga berlebihan.