【问题标题】:Using JQuery to check if no radio button in a group has been checked使用 JQuery 检查组中是否没有选中单选按钮
【发布时间】:2018-01-10 16:10:28
【问题描述】:

我遇到了一个问题,如果没有选中单选按钮组中的单选按钮,我需要使用 JQuery 检查,这样如果用户忘记检查选项,我可以给他们一个 javascript 错误。

我正在使用以下代码来获取值

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

【问题讨论】:

    标签: jquery


    【解决方案1】:
    if (!$("input[name='html_elements']:checked").val()) {
       alert('Nothing is checked!');
    }
    else {
      alert('One of the radio buttons is checked!');
    }
    

    【讨论】:

    • 如果选中的单选按钮有一个 value="" 这将失败
    • @ScottE - 很好的观点 - 如果 Roland 不接受,我会删除这个答案。
    • 我认为您可以将其更改为 .val() == "" 并删除 ! 即可。
    • @Doug - ScottE 提到的问题不会仍然存在吗?如果选中的单选按钮有value="".val() 会返回什么? (虽然我想你可能会说这是一个不太可能发生的情况)。
    • 抱歉,我的评论令人困惑:我的意思是让整个测试看起来像这样:if ($("input[name='html_elements']:checked").val() == "") 会提醒“未检查任何内容”
    【解决方案2】:

    我正在使用

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

    如果单选组中的所有项目都未选中,则返回 FALSE,如果选中一个项目,则返回 TRUE。

    【讨论】:

    • 这个答案对我有用,可以可靠地检查单选按钮组是否具有选定的值。线程中的最佳答案。
    • Dominic Rodger 和 Jacobo Hernández 的回答都很好。我个人尽量不要在行首使用前导 NOT (!)。多年后,当您忽略这一点并将逻辑倒退时,很难调试... is(":checked") 非常清楚您在做什么 - 最佳答案。
    【解决方案3】:

    你可以这样做:

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

    【讨论】:

    • 你不能把前两行缩小到 if ($("input[name='html_elements']:checked").length == 0){ 吗?
    • 你可以,但是如果你显示一个值存在,你将需要另一个完整的 jQuery 选择来获取该值。
    【解决方案4】:
    if ($("input[name='html_elements']:checked").size()==0) {
       alert('Nothing is checked!');
    }
    else {
      alert('One of the radio buttons is checked!');
    }
    

    【讨论】:

      【解决方案5】:

      使用.length参考http://api.jquery.com/checked-selector/

      if ($('input[name="html_elements"]:checked').length === 0) alert("Not checked");
      else alert("Checked");
      

      【讨论】:

        【解决方案6】:
        var len = $('#your_form_id input:radio:checked').length;
              if (!len) {
                alert("None checked");
              };
              alert("checked: "+ len);
        

        【讨论】:

          【解决方案7】:

          我认为这是一个简单的例子,如何检查一组收音机中的一个收音机是否被检查。

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

          【讨论】:

            【解决方案8】:

            我用的就这么简单

            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>
            

            脚本

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

            }

            【讨论】:

              猜你喜欢
              • 2023-03-05
              • 2015-06-27
              • 2014-04-23
              • 1970-01-01
              • 1970-01-01
              • 2013-03-09
              • 1970-01-01
              • 2014-07-02
              • 2015-02-19
              相关资源
              最近更新 更多