简体   繁体   中英

javascript form validation not working and not showing any alerts

I'm using JavaScript to validate my form in html but it doesn't seem to be working. I feel pretty certain that my code is right. I'm not sure what's going wrong.it's not displaying any alerts.can anyone have idea what is wrong here?thanks in advance.

<script>
    function validate() {
        var password2 = document.getElementById("user_password").value;
        var repassword1 = document.getElementById("user_repassword").value;
        var email1 = document.getElementById("user_email").value;
        var atpos = email1.indexOf("@");
        var dotpos = email1.lastIndexOf(".");
        if (password2.lenght < 7) {
            alert("Password must be at least 8 characters long.");
            return false;
        } else if (password2 !== repassword) {
            alert("* Password Does Not Match");
            return false;
        } else if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= email.length) {
            alert("Not a valid e-mail address");
            return false;
        } else {
            return true;
        }
    }
</script>
<form name="submitform" method="post" action="signupsuccessfull.php"      onsubmit="return validate(this)" >
   <p id="error_para">* fields are required</p>
   <span id="error_para">*</span> Name:<input type="text" name="name" required  /><br /><br />
   <span id="error_para">*</span> Username:<input type="text" name="username"   required id="field_username"  /><br /><br />
   <span id="error_para">*</span> Password:<input type="password" name="password" id="user_password" required />
   <br /><br />
   <span id="error_para">*</span> Re-Enter Password:<input type="password" name="repassword" id="user_repassword" required /><br /><br />
   <span id="error_para">*</span> Email:<input type="text" name="email" id="user_email" required />
   <br /><br />
   <span id="error_para">*</span> Gender:<input type="radio" name="gender" value="male" required />Male
   &nbsp;<input type="radio" name="gender" value="female" />Female<br />
   About Urself:
   <textarea rows="5" cols="18" name="about" ></textarea>
   <br /><br />
   <input type="submit" value="Create Account" name="submit" />
   &nbsp;<input type="button"  value="Cancle" onClick="parent.location='../example/try2.html'"><br /><br /> 
</form>

there are errors in your code. there may be more..

if (password2.lenght < 7) {   // length is the right usage
...

} else if (password2 !== repassword) { // it is repassword1 as per you defined.

use browser console (developer tools) and find and fix all these issues.

javascript errors inside a function wont show up unless the code is invoked, so rest of your code will still be working.

There are 2 typos.

It should be password2.length

It should also be repassword1 , not repassword only.

To fix, change the line

 if (password2.lenght < 7) {

to

 if (password2.length < 7) {

And change repassword to repassword1

I got this working by using the below code

function validate() {

    var password2 = document.getElementById("user_password").value;
    var repassword1 = document.getElementById("user_repassword").value;
    var email1 = document.getElementById("user_email").value;
    var atpos = email1.indexOf("@");
    var dotpos = email1.lastIndexOf(".");

    var emilPat = /( *?[0-9a-zA-Z] *?){8,}/; 
    var m;
    m = emilPat.exec(password2) 
    if(m== null){
        alert("Password must be at least 8 characters long.");
        return false;
    }
    if (password2 !== repassword) {
        alert("* Password Does Not Match");
        return false;
    } else if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= email.length) {
        alert("Not a valid e-mail address");
        return false;
    } else {
        return true;
    }
}

Use it like this:

<script>
    function validate() {
        var password2 = document.getElementById("user_password").value;
        var repassword1 = document.getElementById("user_repassword").value;
        var email1 = document.getElementById("user_email").value;
        var atpos = email1.indexOf("@");
        var dotpos = email1.lastIndexOf(".");
        if (password2.lenght < 7) {
            alert("Password must be at least 8 characters long.");
            return false;
        } else if (password2 != repassword1) {
            alert("* Password Does Not Match");
            return false;
        } else if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= email1.length) {
            alert("Not a valid e-mail address");
            return false;
        } else {
            return true;
        }
    }
</script>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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