【问题标题】:Show an element if all radio boxes have a selection in jQuery如果所有单选框在 jQuery 中都有选择,则显示一个元素
【发布时间】:2012-07-31 05:09:04
【问题描述】:

我正在尝试根据所有单选元素是否都有选择来使表单显示/隐藏提交按钮 - 这就是我到目前为止所得到的......有什么想法我做错了吗?

$(document).ready(function() {
    $('#submit-btn').hide();

    if ($(':radio:checked').length > 0) {//try reach selected radio here
        $('#submit-btn').show();
    }
});

【问题讨论】:

  • 看看this answer 可能就是你想要的。
  • 您需要检查所有单选按钮吗?还是所有单选按钮组?
  • 所有排序-感谢你们所有人,尽管我最后使用了 Robins sn-p :)

标签: javascript jquery dom hide radio


【解决方案1】:
 $('.toCheck').length == $('.toCheck:checked').length;

如果计算结果为 true,则该选择器的所有 input 都是 checked! :)

【讨论】:

  • 这适用于复选框,但不适用于单选框。 (虽然对于复选框,我宁愿搜索 '.toCheck:not(:checked)' 以查找任何未选中的内容。)
  • AFAIK, :checked works for radio buttons too.
  • 您误解了该代码。一组单选按钮返回多个元素,该代码检查是否检查了 任何 元素,请参阅:api.jquery.com/is 但在一组单选元素中,其中一些当然不会被检查。
  • @Ariel:我仍然看不到我缺少什么。看到这个fiddle。似乎工作。尝试一一检查单选按钮。您是说按name 属性“分组”吗?
  • @RobinMaben 每个组中只有一个单选按钮(这对于单选按钮当然毫无意义)。添加第二个并尝试一下,您会看到:jsfiddle.net/tqFbQ/2
【解决方案2】:

如果选中任何单选元素,这将返回 true,这不是您想要的。

不幸的是,没有快速的方法来处理单选元素,因为即使一个被选中,其他元素也不会显示为选中。

您必须手动循环它们。

【讨论】:

    【解决方案3】:
    var count = 0
    
    $(':radio').each(function(){
       count++;
    });
    
    if ($(':radio:checked').length == count) {
            $('#submit-btn').show();  
    }
    

    这可能会对你的事业有所帮助..!!

    【讨论】:

      【解决方案4】:

      我使用 Robin 的 sn-p 进行了一些修改。

      我没有正确解释每个“问题”都有一组 5 个单选按钮(我的错) - 但下面的代码可以满足我现在的需要。

      基本上与 Robins 相同,除了每个问题有 5 个单选框,我将长度除以 5,它现在可以工作了!谢谢大家:)

      $(document).ready(function() {
          $('#submit-btn').hide();
          $("form input:radio").change(function() {     
              var questions = ($('.questions').length / 5);
              var checked = ($('.questions:checked').length);
              if (questions == checked)
              {
                  $('#submit-btn').show();
              }
          });
      });
      

      【讨论】:

        猜你喜欢
        • 2013-02-02
        • 1970-01-01
        • 1970-01-01
        • 2018-01-18
        • 2020-09-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多