<form name="registerForm" action="/user/register.cgi" method="post" onsubmit="validateRegisterForm()">
<table>
<tbody>
<tr>
<td><input type="text" name="firstname" placeholder="First Name"></td>
</tr>
<tr>
<td><input type="text" name="lastname" placeholder="Last Name"></td>
</tr>
<tr>
<td><input type="email" name="email" placeholder="Email"></td>
</tr>
<tr>
<td><input type="password" name="password" placeholder="Password"></td>
</tr>
<tr>
<td><input type="password" name="confirmPassword" placeholder="Confirm Password"></td>
</tr>
<tr>
<td><input type="submit" value="Register Details"></td>
</tr>
</tbody>
</table>
</form>
function validateRegisterForm(){
var fname=document["registerForm"]["firstname"].value;
var lname=document["registerForm"]["lastname"].value;
var email=document["registerForm"]["email"].value;
var atpos=email.indexOf("@");
var dotpos=email.lastIndexOf(".");
var pass=document["registerForm"]["password"].value;
var passlen = pass.length;
var confpass=document["registerForm"]["cofirmPassword"].value;
if (fname==null || fname=="")
{
alert("Please enter a First Name!");
return false;
}
else if (lname==null || lname=="")
{
alert("Please enter a Last Name!");
return false;
}
else if (email==null || email=="")
{
alert("Please enter a email!");
return false;
}
else if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
{
alert("Please enter a valid email address!");
return false;
}
else if (pass==null || pass=="")
{
alert("Please enter a Password!");
return false;
}
else if (6<=passlen<=15)
{
alert("Password needs to be to have a lenght of 6-15!");
return false;
}
else if (pass!=confpass)
{
alert("Passwords do not match!");
return false;
}
}
В вашем коде есть некоторые ошибки
cofirmPassword
должно быть confirmPassword
должно быть
var confpass=document["registerForm"]["confirmPassword"].value;
Вместо
var confpass=document["registerForm"]["cofirmPassword"].value;
ОБНОВИТЬ
Ваши ошибки
x.length
должен быть email.length
(6<=passlen<=15)
должно быть (passlen < 6 || passlen > 15)
Обновленный рабочий DEMO
ваш код JavaScript неправильный, попробуйте этот
function validateRegisterForm(){
var fname=document.getElementByName["registerForm"][0].value;
var lname=document.getElementByName["registerForm"][0].value;
var email=document.getElementByName["registerForm"][0].value;
var atpos=email.indexOf("@");
var dotpos=email.lastIndexOf(".");
var pass=document.getElementByName["registerForm"][0].value;
var passlen = pass.length;
var confpass=document.getElementByName["registerForm"][0].value;
if (fname==null || fname=="")
{
alert("Please enter a First Name!");
return false;
}
else if (lname==null || lname=="")
{
alert("Please enter a Last Name!");
return false;
}
else if (email==null || email=="")
{
alert("Please enter a email!");
return false;
}
else if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
{
alert("Please enter a valid email address!");
return false;
}
else if (pass==null || pass=="")
{
alert("Please enter a Password!");
return false;
}
else if (6<=passlen<=15)
{
alert("Password needs to be to have a lenght of 6-15!");
return false;
}
else if (pass!=confpass)
{
alert("Passwords do not match!");
return false;
}
}
Сегодня, во времена HTML5, предпочтительнее использовать новые механизмы проверки, встроенные в браузеры. Общий подход состоит в том, чтобы определить функцию проверки ограничений на каждое свойство (желательно в классе модели в приложении MVC на основе JavaScript, например User.checkEmail
) и назначить его через функцию HTML5 setCustomValidity
в качестве setCustomValidity
событий для input
событий для элементов ввода, поэтому пользователь получает немедленную обратную валидацию при вводе пользователя, например, в
emailInpEl.addEventListener("input", function () {
emailInpEl.setCustomValidity( User.checkEmail( emailInpEl.value).message);
});
Таким образом, всякий раз, когда строка, представленная выражением User.checkEmail(emailInpEl.value).message
, пуста, все в порядке. В противном случае, если это сообщение представляет собой сообщение об ошибке, браузер указывает на нарушение ограничений для пользователя путем маркировки соответствующего поля формы (обычно с красной рамкой) и отображения сообщения об ошибке.
Вы можете больше узнать об использовании программных методов проверки HTNL5 в этом учебнике.
onsubmit="ValidateRegisterForm()"
достаточно. Нет необходимостиreturn
туда