Reputation: 25
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
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
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
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
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
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