Member 13530900 Ответов: 3

Как отобразить все сообщения об ошибках одновременно в javascript во время проверки формы?


Я написал код для проверки формы. Я поставил условные операторы для одновременного отображения всех сообщений об ошибках, но это не работает. Пожалуйста, проверьте мой код и любезно помогите

<!DOCTYPE html>


<заголовок>дизайн веб-страницы

проверка функции(){
имени=документ.Регистрация.имени.значение;
lname=document.registartion.lname.value;
uname=document.registartion.uname.value;
электронная почта=документ.Регистрация.электронной почте.значение;
фрд=документ.Регистрация.фрд.значение;
cpwd=document.registartion.cpwd.value;
//var exp = /^[A-Za-z ]+$/;
//результате ВАР =ехр.тест(имени,)
//var result_lname =exp.test(lname)

если (имени,.длина=='0'){
document.getElementById("fn").innerHTML="имя обязательно";
документ.метода getElementById("ФН").стиль.цвет="красный"
документ.Регистрация.имени.фокус();
возвращать false;
}
if (/^[A-Za-z ]+$/.test(fname)==false){
document.getElementById("fn").innerHTML="имя должно содержать только алфавиты";
документ.метода getElementById("ФН").стиль.цвет="красный"
документ.Регистрация.имени.фокус();
возвращать false;
}
если (л. Неймане.длина=='0'){
документ.метода getElementById("ЛН").innerHTML будет=" "фамилия" является обязательным";
документ.метода getElementById("ЛН").стиль.цвет="красный"
документ.Регистрация.л. Неймане.фокус();
возвращать false;
}
if (/^[A-Za-z ]+$/.test(lname)==false){
document.getElementById("fn").innerHTML="фамилия должна содержать только алфавиты";
документ.метода getElementById("ФН").стиль.цвет="красный"
документ.Регистрация.л. Неймане.фокус();
возвращать false;
}
если (uname.длина=='0'){
document.getElementById("un").innerHTML="имя пользователя обязательно";
документ.метода getElementById("ООН").стиль.цвет="красный"
документ.Регистрация.команде uname.фокус();
возвращать false;
}
if (/^[A-Za-z0-9]+$/.test(uname)==false){
document.getElementById("un").innerHTML="имя пользователя должно содержать только буквенно-цифровые символы";
документ.метода getElementById("ООН").стиль.цвет="красный"
документ.Регистрация.команде uname.фокус();
возвращать false;
}
if (email.length=='0'){
документ.метода getElementById("письмо").innerHTML будет="адрес электронной почты является обязательным";
документ.метода getElementById("письмо").стиль.цвет="красный"
документ.Регистрация.электронной почте.фокус();
возвращать false;
}
если (/^([a-zA-Z0-9_\.\-])+\@(([а-за-З0-9\-])+\.)+([а-за-З0-9]{2,4})+$/.тест(электронная почта)==false) {
document.getElementById("email").innerHTML="неверный идентификатор электронной почты";
документ.метода getElementById("письмо").стиль.цвет="красный"
документ.Регистрация.электронной почте.фокус();
возвращать false;
}
if (pwd.length=='0'){
document.getElementById("pwd").innerHTML="пароль является обязательным";
документ.метода getElementById("дуо").стиль.цвет="красный"
документ.Регистрация.фрд.фокус();
возвращать false;
}
если (/^(?=.*[0-9])(?=.*[!@#$%^&усилителей;*])[а-Яа-команды z0-9!@#$%^&усилителей;*]{6,16}$/.тест(фрд)==ложь){
document.getElementById("pwd").innerHTML="пароль недействителен";
документ.метода getElementById("дуо").стиль.цвет="красный"
документ.Регистрация.фрд.фокус();
возвращать false;
}
if (cpwd.length=='0'){
document.getElementById("cpwd").innerHTML="подтверждение пароля обязательно";
document.getElementById("cpwd").style.color="red"
документ.Регистрация.cpwd.фокус();
возвращать false;
}
если (pwd != cpwd)
{
document.getElementById("cpwd").innerHTML="несоответствие пароля";
document.getElementById("cpwd").style.color="red"
документ.Регистрация.cpwd.фокус();
возвращать false;
}
}




Модуль Регистрации PyExam










имя
фамилия
имя пользователя
Идентификатор электронной почты
Пароль
Подтвердите Пароль






Что я уже пробовал:

Я написал код для проверки формы. Я поставил условные операторы для одновременного отображения всех сообщений об ошибках, но это не работает

3 Ответов

Рейтинг:
1

W∴ Balboos, GHB

Вы должны попробовать использовать отладчик - шаг через ошибку и посмотреть, что он делает после того, как он ее отображает.

Важно, чтобы вы научились использовать отладчик.

Если вы это сделаете, то обнаружите, что ошибка очень очевидный.


Рейтинг:
1

Karthik_Mahalingam

в дополнение к Петр Leow[^] решение,
просто объявите значение флага для хранения значения bool, которое обозначает успех или нет в каждом условии, и верните значение в конце функции, как показано ниже

function validate() {
       var flag = true;
       fname = document.registartion.fname.value;
       lname = document.registartion.lname.value;
       uname = document.registartion.uname.value;
       email = document.registartion.email.value;
       pwd = document.registartion.pwd.value;
       cpwd = document.registartion.cpwd.value;
       //var exp = /^[A-Za-z ]+$/;
       //var result =exp.test(fname)
       //var result_lname =exp.test(lname)

       if (fname.length == '0') {
           document.getElementById("fn").innerHTML = "First Name is mandatory";
           document.getElementById("fn").style.color = "red"
           document.registartion.fname.focus();
           flag = false;
       }
       if (/^[A-Za-z ]+$/.test(fname) == false) {
           document.getElementById("fn").innerHTML = "First Name should only contains alphabets";
           document.getElementById("fn").style.color = "red"
           document.registartion.fname.focus();
           flag = false;
       }
       if (lname.length == '0') {
           document.getElementById("ln").innerHTML = "Last Name is mandatory";
           document.getElementById("ln").style.color = "red"
           document.registartion.lname.focus();
           flag = false;
       }
       if (/^[A-Za-z ]+$/.test(lname) == false) {
           document.getElementById("fn").innerHTML = "Last Name should only contains alphabets";
           document.getElementById("fn").style.color = "red"
           document.registartion.lname.focus();
           flag = false;
       }
       if (uname.length == '0') {
           document.getElementById("un").innerHTML = "User Name is mandatory";
           document.getElementById("un").style.color = "red"
           document.registartion.uname.focus();
           flag = false;
       }
       if (/^[A-Za-z0-9]+$/.test(uname) == false) {
           document.getElementById("un").innerHTML = "UserName should only contain alphanuneric characters";
           document.getElementById("un").style.color = "red"
           document.registartion.uname.focus();
           flag = false;
       }
       if (email.length == '0') {
           document.getElementById("email").innerHTML = "Email is mandatory";
           document.getElementById("email").style.color = "red"
           document.registartion.email.focus();
           flag = false;
       }
       if (/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(email) == false) {
           document.getElementById("email").innerHTML = "Invalid Email id";
           document.getElementById("email").style.color = "red"
           document.registartion.email.focus();
           flag = false;
       }
       if (pwd.length == '0') {
           document.getElementById("pwd").innerHTML = "Password is mandatory";
           document.getElementById("pwd").style.color = "red"
           document.registartion.pwd.focus();
           flag = false;
       }
       if (/^(?=.*[0-9])(?=.*[!@#$%^&*])[a-zA-Z0-9!@#$%^&*]{6,16}$/.test(pwd) == false) {
           document.getElementById("pwd").innerHTML = "Password is invalid";
           document.getElementById("pwd").style.color = "red"
           document.registartion.pwd.focus();
           flag = false;
       }
       if (cpwd.length == '0') {
           document.getElementById("cpwd").innerHTML = "Confirm Password is mandatory";
           document.getElementById("cpwd").style.color = "red"
           document.registartion.cpwd.focus();
           flag = false;
       }
       if (pwd != cpwd) {
           document.getElementById("cpwd").innerHTML = "Password mismatch";
           document.getElementById("cpwd").style.color = "red"
           document.registartion.cpwd.focus();
           flag = false;
       }

       return flag;
   }


Рейтинг:
0

Peter Leow

Как это происходит сейчас,

return false
внутри блока if, где обнаружена первая ошибка, произойдет выход из функции. Если вы хотите получить сводку всех ошибок, то вам нужно использовать переменную, скажем summary, чтобы добавить любое сообщение об ошибке, когда оно происходит. Посмотрите на этот пример:
function validate(){
	
	summary = "";
	
	if (fname.length=='0'){
		// whatever
		// return false;
		summary += "fname cannot be empty!<br>";
	}
	if (/^[A-Za-z ]+$/.test(fname)==false){
		// whatever
		// return false;
		summary += "fname must hold only alphabets!<br>";
	}
	// blah...blah...blah...

    return summary;
}