2012-04-17 86 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