我有8个复选框,在第一组中分成2组,我有一个复选框标记为checkbox1,一个复选框标记为checkbox2。
我想要一个javascript代码,这样我就可以检查表单提交是否已经为每个组检查了其中2个复选框中的至少一个。
复选框为yes,没有值,因此每组只能检查一个。
我不想要一个只检查你是否只检查过一个复选框的脚本,因为这意味着用户不必检查另一组复选框中的至少一个其他复选框。
我正在使用IE9,因此该脚本应与IE9兼容。
我该怎么做?
这是我的代码:
$('#form_check').on('submit', function (e) {
if ($("input[id=checkbox1]:checked").length === 0) {
if ($("input[id=checkbox2]:checked").length === 1) {
}else{
if ($("input[id=checkbox2]:checked").length === 0) {
if ($("input[id=checkbox1]:checked").length === 1) {
e.preventDefault();
alert('no way you submit it without checking a box');
return false;
}
});
答案 0 :(得分:0)
这可能就是你要找的东西,如果不是让我知道的话,我会尝试把它整理得更好。
首先让我们整理一下这段代码。你似乎有一个疯狂的if语句,大多数都没有被终止。
第二,我想要检查是否按下并且至少按下了一个而不是两个都是印象。
$('#form_check').on('submit', function (e) {
if ($("input[id=checkbox1]:checked").length === 0 && $("input[id=checkbox2]:checked").length === 0) { // if neither is selected && means and
e.preventDefault();
alert('nothing selected');
return false;
}
else if (($("input[id=checkbox1]:checked").length === 1 && $("input[id=checkbox2]:checked").length === 0) || ($("input[id=checkbox2]:checked").length === 1 && $("input[id=checkbox1]:checked").length === 0)) { //if a is selected and b is not OR (||) b is selected but not a
e.preventDefault();
alert('congrats one or other of the check boxes is selected');
return false;
}
else{ //otherwise you must have selected both
e.preventDefault();
alert("you've managed to select BOTH yes and no");
return false;
}
});
答案 1 :(得分:0)
您可以使用名为“required”
的类嵌入每个带有DIV的复选框组<form id="form_check">
<div class="required">
<input type="checkbox" id="checkbox1" />Test 1
<input type="checkbox" id="checkbox2" />Test 2
</div>
<div class="required">
<input type="checkbox" id="checkbox3" />Test 3
<input type="checkbox" id="checkbox4" />Test 4
</div>
<input type="submit" value="Submit" />
</form>
这个JavaScript(jQuery)将检查每个'required'组。您必须至少检查每个组的一个复选框。
$('#form_check').on('submit', function (e) {
e.preventDefault();
$('.required').each(function () {
if ( $(this).find('input:checked').length <= 0 ) {
alert('no way you submit it without checking a box');
}
});
});