[英]Javascript Email and Password Validation
I created a registration page were users can sign up and I am trying to make a check that: email is valid, emails match, password meets length requirement, and passwords match. 我创建了一个注册页面,供用户注册,我试图检查一下:电子邮件有效,电子邮件匹配,密码符合长度要求以及密码匹配。 But it is not working properly. 但是它不能正常工作。 The html code is in the same form html代码的格式相同
Email Table Rows: 电子邮件表格行:
<tr>
<td></br>Email Address:</td>
</tr>
<tr>
<td><input id="em100" type="email" name="email1" required>
</td>
</tr>
<tr>
<td></br>Confirm Email Address:</td>
</tr>
<tr>
<td><input id="em101" type="email" name="email2" required></td>
</tr>
Password Table Rows: 密码表行:
<tr>
<td></br>Password:</td>
</tr>
<tr>
<td><input id="pw100" type="password" name="pass1" required></td>
</tr>
<tr>
<td></br>Confirm Password:</td>
</tr>
<tr>
<td><input id="pw101" type="password" name="pass2" required></td>
</tr>
Submit Table Rows: 提交表格行:
<tr>
<td style="padding-top: 10px;"></br><input type="submit" value="Register" onclick="regValidation();"></td>
</tr>
Javascript Code: JavaScript代码:
function regValidation()
{
document.getElementById('td100').innerHTML = "";
event.preventDefault ? event.preventDefault() : event.returnValue = false;
var email1 = document.getElementById('em100').value;
var email2 = document.getElementById('em101').value;
var pass1 = document.getElementById('pw100').value;
var pass2 = document.getElementById('pw101').value;
if (document.getElementById('em100').checkValidity()) {
if (email1 = email2) {
if (pass1 = pass2) {
if (pass1.length >= @minPass || pass1.length <= @maxPass) {
return true && regSuccess();
} else {
document.getElementById('td100').innerHTML += "</br>Password must be @minPass - @maxPass characters.";
}
} else {
document.getElementById('td100').innerHTML += "</br>Passwords do not match.";
}
} else {
document.getElementById('td100').innerHTML += "</br>Emails do not match.";
}
} else {
document.getElementById('td100').innerHTML += "</br>Emails are not valid.";
}
}
function regSuccess()
{
alert("Thank you for signing up!");
document.getElementById('fm101').submit();
return;
}
You need to compare, and may chain the ifs a bit easier: 您需要进行比较,并且可以将if链接起来更加容易:
function getError(){
if(pass1 !== pass2) return "password missmatch";
if(email1 !== email2) return "emails missmatch";
if(pass1.length < min || pass1.length > max) return "password to long/short";
return false;
}
So you can do 所以你可以做
var error = getError();
if(!error){
return alert(" all fine");
}
alert(error);
In your conditionals, you are assigning values: 在条件中,您正在分配值:
if (pass1 = pass2)
This should probably be 这应该是
if (pass1 == pass2)
1 Check your if statements If(email1==email2) {} 1检查您的if语句If(email1 == email2){}
Samething for pass1 and pass2 If(pass1==pass2) {} pass1和pass2的内容If(pass1 == pass2){}
2 If you put 2如果放
<input type="email">
The browser will automatically do the email validation for you 浏览器将自动为您进行电子邮件验证
3 to check that password does not exceed maximum length just add the maxlength attribute to your input tag 3要检查密码是否不超过最大长度,只需将maxlength属性添加到您的输入标签中
<input type="password" maxlength="10">
Soo this saves you from writing additional js code 如此可以避免您编写其他js代码
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.