gpt4 book ai didi

即使检查了所有单选按钮,javascript 验证也会发出警报

转载 作者:行者123 更新时间:2023-12-02 19:11:49 25 4
gpt4 key购买 nike

我尝试使用此代码在具有 3 个单选按钮输入的表单上设置验证,以便在未检查所有按钮时向用户发出警报! ..但是当我尝试它时,即使检查了所有按钮,它也会给我错误警报..知道为什么吗?

这是我的表格

   <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() 中传递表单:

<form name="form1" action="mark.php" onsubmit="return validateForm(this)" method="post"> 
^ pass this

下一个问题是您在检查 this.v1 时,this 不存在,它应该是 formData.v1

最后一个问题是您无法检查单选按钮组是否已这样检查,formData.v1 是一个nodeList,因此您需要循环遍历它。请参阅下面我使用辅助函数 groupChecked() 的示例。

    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;
}

关于即使检查了所有单选按钮,javascript 验证也会发出警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13628077/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com