2012-05-01 23 views
0

我正在處理一個腳本,它接受一個表單輸入並計算一個包含VAT的總計。 我正在嘗試驗證用戶輸入,確保他只使用整數&。使用正則表達式驗證表格

我的問題是,當我輸入第一個數字,即。 1它會引發我的警覺。而當繼續添加數字時,它可以正常工作。當輸入字母時,它按照假設工作並返回警報。

我有一個微弱的想法,發生這種情況是因爲我使用onkeydown事件來激活評估函數。由於consolelog告訴我值100被解析爲10,1000爲100.

如果我改變它們,所以我現在使用onkeyup計算器函數會告訴我,值100被解析爲10,1000爲100。但是,如果該字段爲空,則由於警告框不斷彈出,表單將變得毫無用處。評估工作但如果你有機會在任何類型

我現在後

<input type="text" id="price" name="price" onkeyup="checkIfWholeNo();" onkeydown="calculate();" /> 

function checkIfWholeNo() { 
var price = document.getElementById('price').value; 
if(/^\d+$/.test(parseInt(price))){} 
else {alert("not a number"); return false;} 
} 
} 

問題第一和JS後我的代碼HTML: 是不是有什麼毛病我的評價功能,使這個發生?

問題B: 如果它與事件處理程序有關,我如何解決它,所以我得到onkeyup對兩個函數的影響?

回答

0
+0

是的,我使用 'THIS.VALUE = this.value.replace(/ [^0-9]/g,'')' 其中'g'''是重要部分。 雖然事件處理程序onkeypress工作最好 – odinp123