即使选中了所有单选按钮,javascript验证也会发出警报
我尝试过用这段代码在一个有3个单选按钮输入的表单上设置一个验证,以便在没有选中所有按钮时向用户发出警告。。但当我尝试时,即使所有按钮都被选中,它也会给我错误提示。。知道为什么吗 这是我的表格即使选中了所有单选按钮,javascript验证也会发出警报,javascript,Javascript,我尝试过用这段代码在一个有3个单选按钮输入的表单上设置一个验证,以便在没有选中所有按钮时向用户发出警告。。但当我尝试时,即使所有按钮都被选中,它也会给我错误提示。。知道为什么吗 这是我的表格 <form name="form1" action="mark.php" onsubmit="return validateForm()" method="post"> <tr> <th> Your attendance<font
<form name="form1" action="mark.php" onsubmit="return validateForm()" method="post">
<tr>
<th> Your attendance<font size="4" > </font></th>
<td> <input type="radio" name ="v1" value = "4" onclick="updateTotal();"/></td>
<td> <input type="radio" name ="v1" value = "3" onclick="updateTotal();" /></td>
<td> <input type="radio" name ="v1" value = "2" onclick="updateTotal();" /></td>
<td> <input type="radio" name ="v1" value = "1" onclick="updateTotal();" /></td>
</tr>
<tr>
<th > Your grades <font size="4" > </font></th>
<td> <input type="radio" name ="v2" value = "4" onclick="updateTotal();" /></td>
<td> <input type="radio" name ="v2" value = "3" onclick="updateTotal();" /></td>
<td> <input type="radio" name ="v2" value = "2" onclick="updateTotal();" /></td>
<td> <input type="radio" name ="v2" value = "1" onclick="updateTotal();" /></td>
</tr>
<tr>
<th >Your self-control <font size="4" > </font></th>
<td> <input type="radio" name ="v3" value = "4" onclick="updateTotal();" /></td>
<td> <input type="radio" name ="v3" value = "3" onclick="updateTotal();" /></td>
<td> <input type="radio" name ="v3" value = "2" onclick="updateTotal();" /></td>
<td> <input type="radio" name ="v3" value = "1" onclick="updateTotal();" /></td>
</tr>
您的出席
你的成绩
你的自制力
我已经尝试过这个javascript代码
<script type="text/javascript">
function validateForm(formData){
if(!this.v1.checked && !this.v2.checked && !this.v3.checked){
alert('answer all questions please');
return false;
}
return true;
}
</script>
函数validateForm(formData){
如果(!this.v1.checked&&!this.v2.checked&&!this.v3.checked){
警惕(“请回答所有问题”);
返回false;
}
返回true;
}
分别给定A、B和C单选按钮,您需要所有情况,但选中所有按钮的情况除外。(其中一个按钮未选中)
换句话说:
!A || !B || !C
翻译成代码后,这是:
if (!(this.v1.checked && this.v2.checked && this.v3.checked)) {
经过一点挖掘,你不能仅仅检查一组无线电中的一个是否被这样检查。您需要单独循环节点(this.v1[i].checked)并检查这些节点。如果您使用的是像jQuery这样的框架,那么就更容易了。第一个问题是您需要在validateForm()中传递表单:
如果使用jquery,则更容易,因此添加行
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
</head>
所以。。。您可以重构此代码。请发布您所有的code@Prisoner:事实上,这一点就足够了…还可以看到这个问题:我改成了这个。。同样的问题也出现了:(@JannaSmith:您到底想在什么时候提醒消息,三个消息中的一个没有被检查,还是没有被检查?三个消息中的一个没有被检查
<form name="form1" action="mark.php" onsubmit="return validateForm(this)" method="post">
^ pass this
function groupChecked(group)
{
for(var i=0; i<group.length; i++)
{
if(group[i].checked)
{
return true;
}
}
return false;
}
function validateForm(formData){
if(!(groupChecked(formData.v1) && groupChecked(formData.v2) && groupChecked(formData.v3))){
alert('answer all questions please');
return false;
}
return true;
}
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
</head>
function validate(){
$("input[name=v1]").each(function(){
if($(this).is(":checked")){
return false;
}
});
$("input[name=v2]").each(function(){
if($(this).is(":checked")){
return false;
}
});
$("input[name=v3]").each(function(){
if($(this).is(":checked")){
return false;
}
});
return true;
}