我想在javascript中显示多个错误
在我的项目中,我必须在提交表单时验证所有字段,并在表单字段上方的顺序列表中的同一页上显示错误消息。下面是我的代码,但单击“输入数据”时,一次只显示一个错误。我尝试了多个解决方案,但无法正常工作,所以如何同时显示多个错误我想在javascript中显示多个错误,javascript,Javascript,在我的项目中,我必须在提交表单时验证所有字段,并在表单字段上方的顺序列表中的同一页上显示错误消息。下面是我的代码,但单击“输入数据”时,一次只显示一个错误。我尝试了多个解决方案,但无法正常工作,所以如何同时显示多个错误 函数验证(){ var-minnumberofchars=6; var maxnumberofchars=16; 变量RegularExpersion=/^(?=.[0-9])(?=.[!@$%^&*])[a-zA-Z0-9!@$%^&*]{6,16}$/; 变量字母=/^[A
函数验证(){
var-minnumberofchars=6;
var maxnumberofchars=16;
变量RegularExpersion=/^(?=.[0-9])(?=.[!@$%^&*])[a-zA-Z0-9!@$%^&*]{6,16}$/;
变量字母=/^[A-Za-z]+$/;
var emailRegex=/^[A-Za-z0-9.\]*\@[A-Za-z]*\.[A-Za-z]{2,5}$/;
var frname=document.getElementById('fname').value;
var lrname=document.getElementById('lname').value;
var fage=document.getElementById('age')。值;
var femail=document.getElementById('email')。值;
var fpassword=document.getElementById('password')。值;
如果(frname==“”){
document.getElementById('error').innerHTML=“输入名字”;
返回false;
}
如果(!字母测试(frname)){
document.getElementById('error').innerHTML=“仅输入文本”;
返回false;
}
如果(lrname==“”){
document.getElementById('error').innerHTML=“输入姓氏”;
返回false;
}
如果(!字母.测试(lrname)){
document.getElementById('error').innerHTML=“仅输入文本”;
返回false;
}
如果(fage==“”){
document.getElementById('error').innerHTML=“输入年龄”;
返回false;
}
if(伊斯南(法格)){
document.getElementById('error').innerHTML=“输入唯一的数字”;
返回false;
}
如果(femail==“”){
document.getElementById('error').innerHTML=“输入电子邮件”;
返回false;
}
如果(!emailRegex.test(femail)){
document.getElementById('error').innerHTML=“输入有效电子邮件”;
返回false;
}
如果(fpassword==“”){
document.getElementById('error').innerHTML=“输入密码”;
返回false;
}
if(fpassword.lengthmaxnumberofchars){
document.getElementById('error').innerHTML=“密码应介于6到16个字符之间”;
返回false;
}
if(!常规扩展测试(fpassword)){
document.getElementById('error').innerHTML=“密码应至少包含一个数字和一个特殊字符”;
返回false;
}
返回true;
}
名字
姓
年龄
电子邮件
密码
这里有两个问题
- 验证后返回false,因此执行不会继续李>
isValid=false替换returnfalse
代码>(在方法开头将此变量初始化为true
)。在方法末尾返回此变量
- 您需要使用增量赋值
+=
运算符,而不是赋值=
运算符
比如说,
document.getElementById('error').innerHTML += "enter the first name" + "<br>";
document.getElementById('error')。innerHTML++=“输入名字”+”
”;
或者最好使用变量而不是document.getElementById('error')。innerHTML
您可以将该变量的值分配给Validate函数中error
的innerHTML
,取一个变量,而不是返回false,只需将错误消息附加到html div或维护标志以检查是否存在错误,如果函数中存在任何错误,则在函数末尾返回false,并在div中显示验证
函数验证(){
var-minnumberofchars=6;
var maxnumberofchars=16;
变量RegularExpersion=/^(?=.[0-9])(?=.[!@$%^&*])[a-zA-Z0-9!@$%^&*]{6,16}$/;
变量字母=/^[A-Za-z]+$/;
var emailRegex=/^[A-Za-z0-9.\]*\@[A-Za-z]*\.[A-Za-z]{2,5}$/;
var frname=document.getElementById('fname').value;
var lrname=document.getElementById('lname').value;
var fage=document.getElementById('age')。值;
var femail=document.getElementById('email')。值;
var fpassword=document.getElementById('password')。值;
var errorMessages='';
如果(frname==“”){
errorMessages+=“
输入名字”;
}
如果(!字母测试(frname)){
errorMessages+=“
仅输入文本”;
}
如果(lrname==“”){
errorMessages+=“
输入姓氏”;
}
如果(!字母.测试(lrname)){
errorMessages+=“
仅输入文本”;
}
如果(fage==“”){
errorMessages+=“
输入年龄”;
}
if(伊斯南(法格)){
errorMessages+=“
输入唯一的数字”;
}
如果(femail==“”){
errorMessages+=“
输入电子邮件”;
}
如果(!emailRegex.test(femail)){
errorMessages+=“
输入有效的电子邮件”;
}
如果(fpassword==“”){
errorMessages+=“
输入密码”;
}
if(fpassword.lengthmaxnumberofchars){
errorMessages+=“
密码应介于6到16个字符之间”;
}
if(!常规扩展测试(fpassword)){
errorMessages+=“
密码应至少包含一个数字和一个特殊字符”;
}
如果(错误消息!=''){
//在这里,您还可以使用标志来检查是否存在错误
document.getElementById('error')。innerHTML=errorMessages;
返回false;
}
返回true;
}
您也可以执行errorMessages=[]然后执行errorMessages.push(“错误1”)代码>和结尾处的document.getElementById('error').innerHTML=errorMessages.join('
')代码>存在一些问题一些错误不会立即显示。如果您执行以下建议之一,您还需要在测试中输入其他内容,以确保为空和其他内容不具有输入密码,输入有效密码
最后不要在forname=“submit”
中调用任何内容-它将隐藏提交事件处理程序。移动return validate()