parseInt always returns NaN?
javascript, nan, parseint
Solution
Various ways to coerse JS strings to numbers, and their consequences:
(source: phrogz.net)
I personally use `*1` as it is short to type, but still stands out (unlike the unary +), and either gives me what the user typed or fails completely. I only use `parseInt()` when I know that there will be non-numeric content at the end to ignore, or when I need to parse a non-base-10 string.
Edit: Based on your comment, if using `phone.val()` fixed it then
- You were using jQuery (which you never mentioned, and should have), and
- You actually had/have a jQuery object, wrapping one or more DOM elements (probably just one).
Whenever you do `var foo = $('…');` then the `foo` variable references a jQuery object of one or more elements. You can get the first actual DOM element from this via `var fooEl = foo[0];` or `var fooEl = foo.get(0);`…but even then you still have a DOM element and not a particular property of that.
For form inputs, you need to get the `.value` from the DOM element, which is what the jQuery `.val()` method does.
Problem
long story short, i was trying to validate a phone field. ive added the `isNaN` and `parseInt` for checking the `" "` in the field but that said This below never validates to true..what am i missing? ``` if(isNaN(parseInt(phone))){ error.text("Sorry but this phone field requires numbers only"); return false; } else { return true; } ``` it always fails...it never reads true even when i enter a number in the field and submit. i always get the error mssg. EDIT: I am testing input values from a form, `phone` is the name of the field.