0

我正在编写一个脚本,该脚本接受表单输入并计算包括增值税在内的总额。我正在尝试验证用户输入,以确保他&她只使用整数。

我的问题是,当我输入第一个数字时,即。1 它引发了我的警觉。当继续添加数字时,它工作正常。输入字母时,它按预期工作并返回警报。

我有一个模糊的想法,这是因为我正在使用 onkeydown 事件来激活评估功能。由于 consoleLog 显示值 100 被解析为 10,1000 被解析为 100。

如果我改变它们,所以我现在使用 onkeyup 计算器函数将显示值 100 被解析为 10,1000 被解析为 100。但如果该字段为空,则表单将变得无用,因为警报框不断弹出。但是,如果您有机会输入任何内容,则评估会起作用。

我现在将首先发布我的代码 HTML,然后发布 JS

<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;}
}
}

问题 A:我的评估函数是否有问题导致这种情况发生?

问题 B:如果它与事件处理程序有关,我该如何修复它,以便我在这两个函数上都获得 onkeyup 的效果?

4