javascript - 如果检查了所有 radio ,则显示/隐藏 div

标签 javascript jquery html validation radio-button

我有 N 组 radio 。如果检查了所有 radio 组,我想显示一个 div,如果没有检查所有 radio 组,则显示另一个 div:

http://jsfiddle.net/zoLwdqx6/

HTML

<p>
    <input type="radio" name="period" value="1" />1 Year
    <input type="radio" name="period" value="2" />2 Years
    <input type="radio" name="period" value="3" />3 Years
</p>
<br>
<p>
    <input type="radio" name="year" value="1" />2015
    <input type="radio" name="year" value="2" />2014
    <input type="radio" name="year" value="3" />2013
</p>
<br>
<p>
    <input type="radio" name="student" value="1" />Paul
    <input type="radio" name="student" value="2" />Mary
    <input type="radio" name="student" value="3" />Jane
</p>
<br>
<div class="notchecked">[not all checkboxes are selected yet]</div>
<div class="yeschecked">[submit button]</div>

Javascript

$('.yeschecked').hide();
$('input[type=radio]').click(function () {
    $('.yeschecked').show();
});

最佳答案

以下是 3 未硬编码的示例:

$(function() {
  $(".yeschecked").hide();
  // count number of radio buttons grouped by name
  var radioGroups = [];
  $("input[type=radio]").each(function() {
    if ($.inArray(this.name, radioGroups) >= 0) {
      return;
    }
    radioGroups.push(this.name);
  });
  // radioGroups = ["period", "year", "student"]
  $("input[type=radio]").on("change", function() {
    var all = $("input[type=radio]:checked").length === radioGroups.length;
    // using http://api.jquery.com/toggle/#toggle-display
    $(".yeschecked").toggle(all);
    $(".notchecked").toggle(all === false);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<p>
  <input type="radio" name="period" value="1">1 Year
  <input type="radio" name="period" value="2">2 Years
  <input type="radio" name="period" value="3">3 Years
</p>
<p>
  <input type="radio" name="year" value="1">2015
  <input type="radio" name="year" value="2">2014
  <input type="radio" name="year" value="3">2013
</p>
<p>
  <input type="radio" name="student" value="1">Paul
  <input type="radio" name="student" value="2">Mary
  <input type="radio" name="student" value="3">Jane
</p>
<div class="notchecked">[not all checkboxes are selected yet]</div>
<div class="yeschecked">[submit button]</div>

关于javascript - 如果检查了所有 radio ,则显示/隐藏 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31608868/

相关文章:

javascript - JavaScript 中使用数组进行图像旋转

javascript - 直到使用 Lazy Load 插件滚动时图像才会显示

javascript - 在最后一次出现 10 数字字符串之后挑出所有内容

jquery - 在 jQuery 中获取图像的原始宽度和高度

php - 如何将文本框拆分为每个字符的多个子文本框

html - 如何增加html <audio>标签的高度

html - 随着屏幕变得更窄,图像会向右插入额外的空间

javascript - 如何从 HTML select 中获取所选选项数据属性

javascript - 从本地目录加载文件?

javascript - 在 JavaScript onClick 事件处理程序中转义双引号