我正在尝试验证表单中的复选框。
我的表格如下:
<form name="results" action=request_job.php method="post"
onsubmit="return validateForm.apply(this)">
<td name='checkb'colspan='2' class="noborder" width='100%' align="center">
<input type='checkbox' name='ModelArray[]' value='1'>m1
<input type='checkbox' name='ModelArray[]' value='2'>m2
<input type='checkbox' name='ModelArray[]' value='3'>m3
<input type='checkbox' name='ModelArray[]' value='4'>m4
<input type='checkbox' name='ModelArray[]' value='5'>m5
<input type='checkbox' name='ModelArray[]' value='6'>m6
<input type='checkbox' name='ModelArray[]' value='7'>m7
如果没有选中复选框,我希望在那里发出警报。 我该怎么做呢。我现在已经尝试了很长时间。
由于
用这个解决了:
var wrap=doc.get("checkb");
ArrCB=wrap.getelementbyTagName('input');
ArrCB_l=ArrCB.lenght();
while(ArrCB_l--){
var CB=ArrCB[ArrCB_l];
CB.checked()==True;
return 1
}
return 0
}
答案 0 :(得分:2)
你可以尝试这个(不依赖于jQuery,因为你没有指定):
(function() {
window.validateForm = {};
window.validateForm.apply = function(o) {
var inputs = document.getElementsByTagName("input");
for(var i = 0; i < inputs.length; i++) {
if(inputs[i].type == "checkbox" && inputs[i].checked)
return true;
}
alert('You must select at least 1');
return false;
};
})();
这将迭代页面中所有输入。一旦找到单个复选框,它将返回true,如果找不到,则返回false。
我添加window.validateForm = {}
只是为了它可以工作,如果你已经定义了对象,你可能不需要它。
答案 1 :(得分:1)
从我的查询中收集的任何信息,我都发布了一个解决方案。看看这是否适合你。
<form name="results" action="request_job.php" method="post" onsubmit="return validateForm()">
<input type='checkbox' name='ModelArray[]' value='1'>m1
<input type='checkbox' name='ModelArray[]' value='2'>m2
<input type='checkbox' name='ModelArray[]' value='3'>m3
<input type='checkbox' name='ModelArray[]' value='4'>m4
<input type='checkbox' name='ModelArray[]' value='5'>m5
<input type='checkbox' name='ModelArray[]' value='6'>m6
<input type='checkbox' name='ModelArray[]' value='7'>m7
<input type="submit" value="Submit">
</form>
<script type="text/javascript">
function validateForm()
{
if( $('input[name="ModelArray[]"]:checked').length == 0 )
{
alert("You must check atleast one checkbox");
return false;
}
else
return true;
}
</script>
如果这不适合您,请告诉我。
答案 2 :(得分:1)
我会这样做(非常干净 - 纯粹的浏览器js)方式(并在jsfiddle上成功尝试了这一点)
function validateForm() {
var i, chks = document.getElementsByName('ModelArray[]');
for (i = 0; i < chks.length; i++)
if (chks[i].checked)
return true;
alert('No value selected');
return false;
}
答案 3 :(得分:0)
给他们一个独特的课程,例如'chbValidate',然后尝试if($('.chbValidate:checked').length == 0)
答案 4 :(得分:0)
var wrap=doc.get("checkb");
ArrCB=wrap.getelementbyTagName('input');
ArrCB_l=ArrCB.lenght();
while(ArrCB_l--){
var CB=ArrCB[ArrCB_l];
CB.checked()==True;
return 1
}
return 0
}
答案 5 :(得分:-1)
试试这个:
if($('input[name="ModelArray[]"]:checked').length == 0) {
alert('No checkbox is checked');
}
在提交的验证功能中。