JavaScript表单验证,在继续之前未完成完整脚本
我在使用JavaScript表单验证脚本时遇到问题 基本上,如果没有给出答案,它应该将问题标记为红色,而不是提交表格。(它通过给问题加上类JavaScript表单验证,在继续之前未完成完整脚本,javascript,forms,validation,Javascript,Forms,Validation,我在使用JavaScript表单验证脚本时遇到问题 基本上,如果没有给出答案,它应该将问题标记为红色,而不是提交表格。(它通过给问题加上类错误,增加了红色) 我的表单设置为通过另一个脚本发布,但我希望在发布之前处理验证,因此我使用onsubmit运行验证: <form name="questionnaire" action="my-questionnaire.php" onsubmit="return validateForm()" method="post"> 1) 为您的业务
错误
,增加了红色)
我的表单设置为通过另一个脚本发布,但我希望在发布之前处理验证,因此我使用onsubmit
运行验证:
<form name="questionnaire" action="my-questionnaire.php" onsubmit="return validateForm()" method="post">
1) 为您的业务租用车辆时,您特别关注哪些产品功能:
免费送货及收取
固定价格
2) 按重要性排列下列各项。(1=不太重要,5=非常重要)
1.
2
3
4
5
onsubmit
不允许通过返回true
提交表单,但它可以通过返回false
防止表单提交。如果您的onsubmit
函数由于任何原因未能返回false
,则表单提交将继续
在您的情况下,当features
字段通过验证时,您的代码会产生错误。抛出此错误时,函数立即终止,无重要性传递
字段的验证代码从来没有机会返回false
(因此不会阻止提交)
错误在于在else
块中使用qFeature
,而没有定义它qFeature
在if
块中定义,但显然,如果else
块正在运行,则if
块没有运行。相反,将qFeature
的定义移动到if
的外部:
var qFeature = document.getElementById("qOne");
if (features == null || features == "") {
qFeature.className = qFeature.className + " error";
return false;
} else {
qFeature.className = qFeature.className + " noerror";
}
在代码的下一部分中,您有一个与qFreeDel相同的错误。您的代码包含很多错误
返回一个节点数组,因此您无法获取它的document.forms[“inventory”][“features”]
属性,您需要遍历每个节点并检查它是否已选中值
属性
应该是document.getElementById(“qTwoOne”)
qTwo
- 某些变量仅在
块中定义,因此在if
块中未定义else
功能检查如果选择了RadioOption(节点阵列){
用于(nodeArray中的var i){
if(noderray[i].checked)返回true;
}
返回false;
}
window.validateForm=函数(){
var features Selected=CheckIfRadioOption Selected(document.forms[“问卷”][“功能”]);
var importanceSelected=CheckIfRadioOptionsSelected(document.forms[“问卷”][“无重要性传递”]);
var qOne=document.getElementById(“qOne”);
如果(!qOne.originalClass)qOne.originalClass=qOne.className;
qOne.className=qOne.originalClass+(已选择功能?“无错误”:“错误”);
var qTwo=document.getElementById(“qTwo”);
如果(!qTwo.originalClass)qTwo.originalClass=qTwo.className;
qTwo.className=qTwo.originalClass+(重要性选择?“无错误”:“错误”);
如果(!featuresSelected | |!importanceSelected)返回false;
返回true;
}
。错误{
颜色:红色;
}
诺埃罗先生{
颜色:绿色;
}
1) 为您的业务租用车辆时,您特别关注哪些产品功能:
免费送货及收取
固定价格
2) 按重要性排列下列各项。(1=不太重要,5=非常重要)
1.
2
3
4
5
如果您添加表单的其余部分,然后将其转换为代码段(ctrl+k),您将增加获得帮助的机会。@Mandera已添加表单。document.forms[“问卷”][“无重要性传递”]
返回节点列表,它没有值
属性。@Teemu你能建议一个替代方案,然后按照第一个问题工作吗?我感到困惑,因为第一个很好用。一个问题是qFeature在else部分没有定义:else{qFeature.className=qFeature.className+“noerror”}