简体   繁体   中英

what is the wrong with this Jquery form validation

I am trying to validate a form element with 3 condition using Jquery.

This is my Code -

var valid = true,
errorMessage = "";

if ($('#name').val()) {
    if ($('#name').val().length > 60 || $('#name').val().length < 3)  { 
        errorMessage  = "Length of Your Name must be between 3 and 60.\n";
        valid = false;
    } else {
        var rege = /^[a-z]([a-z_])+$/i;
        if(!rege.test(!$('#name').val())){ 
               errorMessage  += "Please enter Valid name.\n";
               valid = false;
        }
    }
} else {
    errorMessage  += "please enter your name \n";
    valid = false;   
}

If the name field is empty it should be display 'Please enter your name'.

If the field is not empty and its length is < 3 or > 60 it should be display 'Length of Your Name must be between 3 and 60'.

Finally It should be check user name is valid or not. If it is not valid 'please enter valid name' should be display.

My problem is when I am entering valid user name its always going to this message - 'Please enter valid name.'

Can anyone tell where is wrong I have gone?

NOTE : my name can have only uppercase letters and lowercase letters.

FIDDLE

Any ideas are greatly appreciated. Thank you.

it looks fine to me exception for a unwanted ! in

        var rege = /^[a-z]([a-z\s])+$/i;
        if(!rege.test($('#name').val())){ // ! before $('#name').val() not required
            errorMessage  += "Please enter Valid name.\n";
            valid = false;
        }

将您的正则表达式更改为:

var rege = /^[a-zA-Z]([a-zA-Z])+$/i;

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