JavaScript - What is the opposite of isNaN?
Solution 1
The literal opposite of isNaN(num)
is !isNaN(num)
. However, this won't always verify that something is numeric. To check if something is numeric, use jQuery's $.isNumeric(num)
, or this
function isNumeric(num) {
return !isNaN(parseFloat(num)) && isFinite(num);
}
Solution 2
If your code really looks like this:
else (x>=0 || x!==null || x!=="")
{
document.forms["myForm"]["SN"].style.border="1px solid green";
}
then your problem really has nothing to do with isNaN
. Syntactically, your else
clause only applies to that parenthesized test expression. That expression will be evaluated when the if
clause is false
. It will have no effect on anything, however; the value will just be thrown away. The subsequent block statement in which the border is made green will always be executed; it has nothing to do with the if - else
statement.
The syntax for the else
clause in JavaScript does not involve a test condition like the if
clause does. After an else
should come a statement. In your case, that "statement" is the parenthesized test expression, which while useless is a perfectly valid statement in JavaScript.
![Admin](/assets/logo_square_200-5d0d61d6853298bd2a4fe063103715b4daf2819fc21225efa21dfb93e61952ea.png)
Admin
Updated on June 08, 2022Comments
-
Admin about 2 years
I am very new to JavaScript, and trying to run a simple script which gives my field a red border if it is incorrectly completed (i.e. if the entry is not a number), but then turns the border colour green if the field is then correctly completed, but the form cannot be submitted because a different field has been filled out incorrectly.
So far i have managed to do this for a text field by using this:
function validateForm() { var x=document.forms["myForm"]["FN"].value; if (x==null || x=="") { alert("First name must be completed"); document.forms["myForm"]["FN"].style.border="1px solid red"; return false; } else (x!==null || x!=="") { document.forms["myForm"]["FN"].style.border="1px solid green"; }
but I am now trying to do the same thing but limit the field to only accept numbers. What I have so far is this:
var x=document.forms["myForm"]["mobile"].value; if (isNaN(x) || x==null || x=="") { alert("Contact number must be completed with numbers only"); document.forms["myForm"]["mobile"].style.border="1px solid red"; return false; } else (x!==null || x!=="" || // need to write here is not isNaN !isNaN//) { document.forms["myForm"]["SN"].style.border="1px solid green"; }
This restricts the fie;ld to only allowing numbers, but once the form box border turns red, it will not turn to green once the validation has been met.
Any help/tips on how to write is not isNaN, or any work arounds would be appreciated.
Please try to keep as simple as poss, as am a complete beginner with web design & JavaScript.
Thanks!
-
GusDeCooL about 9 yearseverything is
jQuery
-
platinums about 8 yearswell spotted, perhaps he meant to use
else **if**