Javascript 如果选中所有收音机,则显示/隐藏div

Javascript 如果选中所有收音机,则显示/隐藏div,javascript,jquery,html,validation,radio-button,Javascript,Jquery,Html,Validation,Radio Button,我有N组收音机。如果选中了所有组的收音机,我想显示一个div,如果没有选中所有组,则显示另一个div: 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" />

我有N组收音机。如果选中了所有组的收音机,我想显示一个div,如果没有选中所有组,则显示另一个div:

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>

您可以获得选中的单选按钮计数,如果它是三,则选择所有类别


这可以通过
length

$(document).ready(function(){
    var  total =  totalChecked  = 0;
 $('input[type=radio]').on("change",function(){
        totalChecked =   $('input[type=radio]:checked').length;
       if( totalChecked  == 3  ){
           $('.yeschecked').show();
          $('. notchecked').hide();
      } else {
        $('. notchecked').show();
        $('.yeschecked').hide();
      }
 })
});
有关长度,请参阅


下面是一个示例,
3
不是硬编码的:

$(函数(){
$(“.yeschecked”).hide();
//计数按名称分组的单选按钮数
变量组=[];
$(“输入[type=radio]”)。每个(函数(){
如果($.inArray(this.name,radiogroup)>=0){
返回;
}
radiogroup.push(此.name);
});
//放射组=[“期间”、“年份”、“学生”]
$(“input[type=radio]”)。在(“change”,function()上{
var all=$(“输入[type=radio]:选中”)。长度===radioGroups.length;
//使用http://api.jquery.com/toggle/#toggle-展示
$(“.yeschecked”)。切换(全部);
$(“.notchecked”).toggle(all==false);
});
});


一年
两年
三年

2015 2014 2013

保罗 玛丽 简

[尚未选中所有复选框]
[提交按钮]
作为一个组,只会选择一个收音机,因此这里只会检查3个收音机

var totl;//跟踪所有无线电组
$(函数(){
var rdos=$('input[type=radio]');
rdos.on('change',toggleDivs);
var-tmp=[],nm;
每个(函数(){
nm=this.name.toLowerCase();
if(-1==$.inArray(nm,tmp))//在数组中找不到
tmp.push(nm);//新组
});
totl=tmp.length;//获取无线组的计数
toggleDivs();//页面加载触发器
});
var toggleDivs=函数(){
var chkd=$('input[type=radio]:checked')。长度;
$('div.notchecked')。切换(chkd!==totl);
$('div.yeschecked').toggle(chkd==totl);
};


一年
两年
三年

2015 2014 2013

保罗 玛丽 简

[尚未选中所有复选框]
[提交按钮]
复选框
,我在代码中没有看到任何复选框我的错误。我做了广播,但写了复选框。已修复。是否确实要选中所有单选按钮?^每组选中一个,是的。他说他有n个复选框,这只选中了3个复选框。她有单选按钮,我看不到复选框,单选按钮有独占选择。在您的示例中,总数将是9,totalChecked最多可以是3。不可能3==9。
$('.yeschecked').hide();
$('input[type=radio]').change(function () {
    if ($('input[type=radio]:checked').length == 3) {
        $('.yeschecked').show();
        $('.notchecked').hide();
    } else {
        $('.notchecked').show();
        $('.yeschecked').hide();
    }
});
$(document).ready(function(){
    var  total =  totalChecked  = 0;
 $('input[type=radio]').on("change",function(){
        totalChecked =   $('input[type=radio]:checked').length;
       if( totalChecked  == 3  ){
           $('.yeschecked').show();
          $('. notchecked').hide();
      } else {
        $('. notchecked').show();
        $('.yeschecked').hide();
      }
 })
});