【发布时间】:2015-06-27 06:10:55
【问题描述】:
我知道这个问题有很多相关资源。但是,我仍然需要一个完美的解决方案。
我已经动态生成了五个单选按钮组。每个组最多包含五个单选按钮。我已将“没有签入”和“至少一个签入功能”作为一个单独的组进行验证。
我的问题是,如何验证“所有组都已检查”
参考:
我的代码如下:
var names = [];
$('input[type="radio"]').each(function() {
// Creates an array with the names of all the different checkbox group.
names[$(this).attr('name')] = true;
});
// Goes through all the names and make sure there's at least one checked.
for (name in names) {
var radio_buttons = $("input[name='" + name + "']");
if (radio_buttons.filter(':checked').length == 0) {
alert('none checked in ' + name);
}
else{
// At least one checked
var val = radio_buttons.val();
}
}
选中所有单选按钮组后,我需要重定向到其他页面。它有点简单。但是,对我来说看起来很复杂。
请帮忙。
更新 我为前两组生成的 HTML。
<div class="row">
<div class="optionsContainer"><div id="ratingContainer">
<ul class="0">
<li onclick="checkThis(this);"><div class="ui-radio"><input type="radio" value="Strongly disagree" name="0" id="1"></div></li>
<li onclick="checkThis(this);"><div class="ui-radio"><input type="radio" value="Disagree" name="0" id="2"></div></li>
<li onclick="checkThis(this);"><div class="ui-radio"><input type="radio" value="Neutral" name="0" id="3"></div></li>
<li onclick="checkThis(this);"><div class="ui-radio"><input type="radio" value="Agree" name="0" id="4"></div></li>
<li onclick="checkThis(this);"><div class="ui-radio"><input type="radio" value="Strongly agree" name="0" id="5"></div></li>
</ul></div></div></div>
<div class="row">
<div class="optionsContainer"><div id="ratingContainer">
<ul class="0">
<li onclick="checkThis(this);"><div class="ui-radio"><input type="radio" value="Strongly disagree" name="1" id="1"></div></li>
<li onclick="checkThis(this);"><div class="ui-radio"><input type="radio" value="Disagree" name="1" id="2"></div></li>
<li onclick="checkThis(this);"><div class="ui-radio"><input type="radio" value="Neutral" name="1" id="3"></div></li>
<li onclick="checkThis(this);"><div class="ui-radio"><input type="radio" value="Agree" name="1" id="4"></div></li>
<li onclick="checkThis(this);"><div class="ui-radio"><input type="radio" value="Strongly agree" name="1" id="5"></div></li>
</ul></div></div></div>
注意:这里仅更改组名。
【问题讨论】:
-
你能提供你的 JS Fiddle 吗?
-
您的代码看起来不错,但不需要第二个循环。只需将检查移动到第一个循环中
-
“我的问题是,如何验证“所有组都已选中”” 要求检查每个组中是否至少选中一个复选框,或者 all 复选框是否每个组都被选中?
-
@guest271314 每组至少勾选一个复选框
-
id值应该是唯一的。id="ratingContainer"被使用了两次。
标签: javascript jquery validation radio-group