2012-04-17 134 views
0

我需要将输入字段转换为数字。因此,如果输入字段为空,或者包含字母,数字将为0JavaScript输入字段到数字

这不起作用:

​​3210

我试过parseInt函数它也似乎无法工作它。有什么建议?

+0

先试着做alert(trade_gold),看看它是否是你期望的值。如果它是一个数字,parseInt将起作用。 – aurbano 2012-04-17 17:22:29

+0

更具体地说明您使用parseInt时遇到的问题。这是将字符串解析为数字的常用方法。 – 2012-04-17 17:23:54

+0

parseInt or parseFloat – 2012-04-17 17:25:07

回答

2
var val = document.getElementById('trade_gold').value, 
    trade_gold = parseFloat(val) || 0; 
+0

完美的感谢...... – user1022585 2012-04-17 17:28:55

+1

打败了我,所以我会把我的演示放在这里:http://jsfiddle.net/jtbowden/yKK2K/(我使用parseFloat,但它取决于你期待的号码。) – 2012-04-17 17:28:56

+0

@JeffB:'parseFloat'是个好主意。刚刚更新。 – 2012-04-17 17:29:22

0
var trade_gold = 0; 
try{ 
    trade_gold = parseInt(document.getElementById('trade_gold').value, 10); 
}catch(e){} 
+0

'try/catch'不会帮助。 'parseInt'不会抛出,而是返回'NaN'。 – 2012-04-17 17:27:00

0

这将检查是否是一个数字或者没有,将值更改为0,如果不是这样的。

var trade_gold = document.getElementById('trade_gold').value; 
if (trade_gold.search(/[^0-9]/)>=0) 
{ 
     // not a number 
     trade_gold = 0; 
} 
+1

[...]在正则表达式中做了什么? – jbabey 2012-04-17 17:30:46

+0

检查字符串是否包含在括号中指定的字符 – aquatorrent 2012-04-17 17:55:13

+0

这是什么;) – jbabey 2012-04-17 17:56:06

相关问题