Menggunakan JQuery untuk memeriksa apakah tidak ada tombol radio dalam grup yang telah diperiksa

107

Saya duduk dengan masalah, saya perlu memeriksa dengan JQuery jika tidak ada tombol radio dalam grup tombol radio yang telah diperiksa, sehingga saya dapat memberi pengguna kesalahan javascript jika mereka lupa memeriksa opsi.

Saya menggunakan kode berikut untuk mendapatkan nilainya

var radio_button_val = $("input[name='html_elements']:checked").val();
Elitmiar
sumber

Jawaban:

146
if (!$("input[name='html_elements']:checked").val()) {
   alert('Nothing is checked!');
}
else {
  alert('One of the radio buttons is checked!');
}
Dominic Rodger
sumber
17
Ini akan gagal jika tombol radio yang dicentang memiliki nilai = ""
ScottE
1
@ ScottE - poin yang sangat baik - Saya akan menghapus jawaban ini jika Roland tidak menerimanya.
Dominic Rodger
Saya pikir Anda bisa mengubahnya menjadi .val() == ""dan menghapus !dan Anda akan siap.
Doug Neiner
@Doug - bukankah itu masih memiliki masalah yang disebutkan ScottE? Apa yang akan .val()dikembalikan jika tombol radio yang dicentang memiliki value=""? (Meskipun saya kira Anda bisa membantah itu kasus yang cukup tidak mungkin).
Dominic Rodger
1
Maaf, komentar saya membingungkan: Saya bermaksud agar keseluruhan tes terlihat seperti ini: if ($("input[name='html_elements']:checked").val() == "")Yang akan mengingatkan "Tidak ada yang dicentang"
Doug Neiner
144

saya menggunakan

$("input:radio[name='html_radio']").is(":checked")

Dan akan mengembalikan FALSE jika semua item di radiogroup tidak dicentang dan TRUE jika item dicentang.

Jacobo Hernández
sumber
3
Jawaban ini bekerja untuk saya dengan andal untuk memeriksa apakah grup tombol radio memiliki nilai yang dipilih. Jawaban terbaik di utas.
Andy Cook
1
Jawaban dari Dominic Rodger dan Jacobo Hernández bekerja dengan baik. Saya pribadi mencoba untuk tidak pernah menggunakan NOT (!) Terdepan di awal baris. Bertahun-tahun kemudian menjadi sulit untuk men-debug ketika Anda mengabaikannya dan memiliki logika mundur ... is (": diperiksa") sangat jelas apa yang Anda lakukan - Jawaban terbaik.
Scott
32

Anda bisa melakukan sesuatu seperti ini:

var radio_buttons = $("input[name='html_elements']");
if( radio_buttons.filter(':checked').length == 0){
  // None checked
} else {
  // If you need to use the result you can do so without
  // another (costly) jQuery selector call:
  var val = radio_buttons.val();
}
Doug Neiner
sumber
2
Tidak bisakah Anda mempersempit dua baris pertama menjadi hanya if ($("input[name='html_elements']:checked").length == 0){?
Powerlord
7
Anda bisa, tetapi kemudian Anda akan membutuhkan pilihan jQuery lengkap lainnya untuk mendapatkan nilai jika Anda menunjukkan ada nilai.
Doug Neiner
5
if ($("input[name='html_elements']:checked").size()==0) {
   alert('Nothing is checked!');
}
else {
  alert('One of the radio buttons is checked!');
}
fanjabi.dll
sumber
2
var len = $('#your_form_id input:radio:checked').length;
      if (!len) {
        alert("None checked");
      };
      alert("checked: "+ len);
David Okwii
sumber
2

Saya rasa ini adalah contoh sederhana, bagaimana memeriksa apakah sebuah radio di grup radio telah diperiksa.

if($('input[name=html_elements]:checked').length){
    //a radio button was checked
}else{
    //there was no radio button checked
} 
Vitali D.
sumber
0

Saya menggunakan ini sangat sederhana

HTML

<label class="radio"><input id="job1" type="radio" name="job" value="1" checked>New Job</label>
<label class="radio"><input id="job2" type="radio" name="job" value="2">Updating Job</label>


<button type="button" class="btn btn-primary" onclick="save();">Save</button>

NASKAH

 $('#save').on('click', function(e) {
    if (job1.checked)
        {
              alert("New Job"); 
        }
if (job2.checked)
        {
            alert("Updating Job");
        }

}

Mathew Magante
sumber