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.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…