Lim Jing
Lim Jing

Reputation: 25

javascript form validation textfield length

i got a problem on validate the student ID, it require 10 numbers, the problem i met is when i key in a valid student ID, it still return false. Please help me to check mycoding, thank you very much.

example of my Student ID = "1101106363"

if ((document.appsub.id.value == "") || !(isNaN(document.appsub.id.value)) || (document.appsub.id.value.length < 11))
    {
        alert("Please enter the correct Student ID");
        document.appsub.id.focus();
        return false;
    }

update: [link]http://jsfiddle.net/rVswq/1/

Upvotes: 0

Views: 1345

Answers (5)

woofmeow
woofmeow

Reputation: 2408

You need to use document.getElementById method to select the element properly.

var el = document.getElementById("yourid");
if (!(isNaN(el.value)) || (el.value.length < 11))
    {
        alert("Please enter the correct Student ID");
        el.focus();
        return false;
    }

Upvotes: 2

helgeheldre
helgeheldre

Reputation: 1101

Your if statement will catch students ids with length less to or equal to 10.

Test against length like 10 instead

Upvotes: 0

user1503429
user1503429

Reputation: 21

There is something strange here. You are checking if the value is null, OR if it IS a number (isNaN returns true if the value IS NOT a number, if you place !isNaN the result is true if the value IS a number), OR if the length is inferior to 11.

If you want to be sure that the inserted value is not null, a number and its length inferior to 11 you should write

if ((document.appsub.id.value == "") || isNaN(parseInt(document.appsub.id.value)) || (document.appsub.id.value.length > 10))

Upvotes: 1

j7m
j7m

Reputation: 1075

Your IF statement is wrong. You want:

if ( (document.appsub.id.value == "") || (isNaN(document.appsub.id.value)) || document.appsub.id.value.length < 11) )
    {
        alert("Please enter the correct Student ID");
        document.appsub.id.focus();
        return false;
    }

Upvotes: 0

geedubb
geedubb

Reputation: 4057

It looks to me like you don't need the NOT operator

if ((document.appsub.id.value == "") || isNaN(document.appsub.id.value) ||    (document.appsub.id.value.length < 11))
{
    alert("Please enter the correct Student ID");
    document.appsub.id.focus();
    return false;
}

Upvotes: 0

Related Questions