简体   繁体   English

JavaScript电子邮件和密码验证

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM