TNK
TNK

Reputation: 4323

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.

Upvotes: 0

Views: 62

Answers (2)

Arun P Johny
Arun P Johny

Reputation: 388316

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;
        }

Upvotes: 1

bastos.sergio
bastos.sergio

Reputation: 6764

change your regex to this:

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

Upvotes: 0

Related Questions