2012-05-01 25 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