Sử dụng JQuery để kiểm tra xem không có nút radio nào trong nhóm được kiểm tra


107

Tôi đang gặp sự cố, tôi cần kiểm tra với JQuery nếu không có nút radio nào trong nhóm nút radio đã được kiểm tra, để tôi có thể thông báo cho người dùng lỗi javascript nếu họ quên kiểm tra một tùy chọn.

Tôi đang sử dụng mã sau để nhận các giá trị

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

Câu trả lời:


146
if (!$("input[name='html_elements']:checked").val()) {
   alert('Nothing is checked!');
}
else {
  alert('One of the radio buttons is checked!');
}

17
Điều này sẽ không thành công nếu nút radio được chọn có giá trị = ""
ScottE

1
@ScottE - điểm tuyệt vời - Tôi sẽ loại bỏ câu trả lời này nếu Roland không đồng ý.
Dominic Rodger

Tôi nghĩ rằng bạn có thể chỉ cần thay đổi nó thành .val() == ""và xóa !và bạn sẽ hoàn tất.
Doug Neiner

@Doug - điều đó có còn vấn đề mà ScottE đã đề cập không? Điều gì sẽ .val()trả về nếu nút radio được chọn có value=""? (Mặc dù tôi cho rằng bạn có thể tranh luận rằng đó là một trường hợp khá khó xảy ra).
Dominic Rodger

1
Xin lỗi, bình luận của tôi đã gây nhầm lẫn: Tôi có nghĩa là cho toàn bộ thử nghiệm để xem xét như thế này: if ($("input[name='html_elements']:checked").val() == "")Trong đó sẽ cảnh báo "Không có gì được kiểm tra"
Doug Neiner

144

Tôi đang sử dụng

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

Và sẽ trả về FALSE nếu tất cả các mục trong nhóm radio không được chọn và TRUE nếu một mục được chọn.


3
Câu trả lời này giúp tôi tin cậy khi kiểm tra xem nhóm nút radio có giá trị đã chọn hay không. Câu trả lời hay nhất trong chủ đề.
Andy Cook,

1
Cả câu trả lời của Dominic Rodger và Jacobo Hernández đều hoạt động tốt. Cá nhân tôi cố gắng không bao giờ sử dụng NOT (!) Đứng đầu ở đầu dòng. Nhiều năm sau, thật khó để gỡ lỗi khi bạn bỏ qua điều đó và có logic ngược ... là (": đã kiểm tra") rất rõ ràng bạn đang làm gì - Câu trả lời hay nhất.
Scott

32

Bạn có thể làm điều gì đó như sau:

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();
}

2
Bạn không thể thu hẹp hai dòng đầu tiên xuống chỉ if ($("input[name='html_elements']:checked").length == 0){?
Powerlord

7
Bạn có thể, nhưng sau đó bạn sẽ cần một lựa chọn jQuery đầy đủ khác để nhận giá trị nếu bạn cho thấy một giá trị tồn tại.
Doug Neiner

5
if ($("input[name='html_elements']:checked").size()==0) {
   alert('Nothing is checked!');
}
else {
  alert('One of the radio buttons is checked!');
}


2
var len = $('#your_form_id input:radio:checked').length;
      if (!len) {
        alert("None checked");
      };
      alert("checked: "+ len);

2

Tôi nghĩ đây là một ví dụ đơn giản, cách kiểm tra xem một bộ đàm trong một nhóm bộ đàm đã được kiểm tra hay chưa.

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

0

Tôi đang sử dụng cái này rất đơn giản

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>

KỊCH BẢN

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

}

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.