验证是否选中了分组单选框
Validate whether grouped radio boxes are checked
我正在尝试检查每组至少检查一个单选按钮,非常感谢对我的特定情况的一些帮助。
<tr>
<td> Group1 </td>
<td><input type="radio" id="wahl1" name="wahl1" value="1"></td>
<td><input type="radio" id="wahl1" name="wahl1" value="2"></td>
<td><input type="radio" id="wahl1" name="wahl1" value="3"></td>
<td><input type="radio" id="wahl1" name="wahl1" value="4"></td>
<td><input type="radio" id="wahl1" name="wahl1" value="5"></td>
<td><input type="radio" id="wahl1" name="wahl1" value="6"></td>
<td><input type="radio" id="wahl1" name="wahl1" value="7"></td>
</tr>
<tr>
<td> Group2 </td>
<td><input type="radio" id="wahl2" name="wahl2" value="1"></td>
<td><input type="radio" id="wahl2" name="wahl2" value="2"></td>
<td><input type="radio" id="wahl2" name="wahl2" value="3"></td>
<td><input type="radio" id="wahl2" name="wahl2" value="4"></td>
<td><input type="radio" id="wahl2" name="wahl2" value="5"></td>
<td><input type="radio" id="wahl2" name="wahl2" value="6"></td>
<td><input type="radio" id="wahl2" name="wahl2" value="7"></td>
</tr>
<tr>
我试图用一个纯粹的javascipt函数来解决这个问题,为了我的目的,它必须在这样的按钮中定义:
<input name="submFragebogen2" type="submit" id="fragebogen2" value="Absenden" style="display: none">
<input type="button" value="Absenden" onclick="
function test2() {
var radios = document.getElementsByName("input");
var counter = 0;
for (var i = 0, len = radios.length; i < len; i++) {
if (radios[i].checked) {
counter = counter + 1;
}
}
if (counter != 2) {
alert('Please choose an option in each row.');
} else {
var subButton2 = document.getElementsByName('submFragebogen2')[0];
subButton2.style.display='inline';
subButton2.click();
subButton2.style.display='none'
}
};
test2();"
使用 querySelectorAll 获取仅单选按钮。
document.getElementsByName("input")
将返回所有类型的输入。
例如按钮,文本字段,隐藏字段等。
function test2() {
var radios = document.querySelectorAll("input[type=radio]")
var counter = 0;
for (var i = 0, len = radios.length; i < len; i++) {
...
}
if (counter != 2) {
alert('Please choose an option in each row.');
} else {
..
}
};
.HTML:
<input type="button" value="Absenden" onclick="test2()"/>
html代码中的一些错误。该 id 应该是唯一的。删除输入的相同 ID。
使用纯JavaScript,您需要以下代码:
function checkRadios() {
var wahl1RadiosChecked = false;
var wahl2RadiosChecked = false;
var wahl1Radios = document.getElementsByName('wahl1');
var wahl2Radios = document.getElementsByName('wahl2');
for( i = 0; i < wahl1Radios.length; i++ ) {
if( wahl1Radios[i].checked ) {
wahl1RadiosChecked = true;
}
}
for( i = 0; i < wahl2Radios.length; i++ ) {
if( wahl2Radios[i].checked ) {
wahl2RadiosChecked = true;
}
}
if (wahl1RadiosChecked === false || wahl2RadiosChecked === false) {
alert('Please choose an option in each row.');
} else {
var subButton2 = document.getElementsByName('submFragebogen2')[0];
subButton2.style.display='inline';
subButton2.click();
subButton2.style.display='none';
}
}
在按钮内部,您需要调用此函数。
下面是示例:https://jsbin.com/wujuwimide/edit?html,js,console,output
当然,使用 jquery 可以避免拥有太多代码。
您可以使用 JQuery 和以下代码执行此操作:
$("[name=wahl1]:checked").length > 0
选择器将仅选择已选中的名称为"wahl1"的输入。然后你看看是否有不止一个。
如果你正在寻找一个纯粹的JavaScript代码,试试这个:
var elements = document.getElementsByName("wahl2"), checked = false;
for(var i=0; i<elements.length-1; i++){
checked = checked || elements[i].checked;
}
if(!checked){
alert("Please select at least one.");
}
JSFiddle: https://jsfiddle.net/z6eud4kx/
相关文章:
- 选中单选框时将属性添加到输入字段
- 选中单选框时禁用输入框
- 基于单选框更新页眉,选中并选择输入文本
- JQuery:如何检查某个类的所有复选框是否都在表单中选中
- 选中单选框时,将文本添加到文本框中
- 如果选中单选框,则将值添加到合计
- 使用javascript提交表单并从字段/单选框/复选框/文本区域获取数据
- html/jquery输入类型:单选框中的文本不起作用
- jQuery:如何查找id是动态生成的单选按钮是否被选中
- 如何在将鼠标悬停在提交/锚点上时检查复选框是否已选中,并显示提示用户这样做的警报
- 按字母顺序对输入单选框进行排序
- j查询检查复选框是否被选中,然后向输入字段添加值
- 检查网格视图中的复选框是否被选中
- 使用JQuery启用输入字段的单选框
- 如何检查复选框是否在特定表单中被选中
- 验证是否选中了分组单选框
- 如何在单击复选框之前检查复选框是否已选中
- 检查是否选中任何单选框或复选框
- 确认是否选中了单选框
- 比较两个表单's复选框是否选中