📅  最后修改于: 2023-12-03 15:16:16.448000             🧑  作者: Mango
在某些情况下,我们希望我们的表单输入框只能输入非负数,而防止用户使用键盘输入负数通常是一种有效的方法。
下面是一个简单的Javascript函数,可以实现在输入框中只允许输入非负数:
function preventNegativeInput(e) {
var keyCode = e.keyCode ? e.keyCode : e.which;
var enteredValue = String.fromCharCode(keyCode);
if (/[\d\.]/.test(enteredValue)) {
var textboxValue = e.target.value;
var newTextboxValue = textboxValue + enteredValue
if (/^(0|[1-9]\d*)(\.\d+)?$/.test(newTextboxValue)) {
return true;
}
}
e.preventDefault();
}
这个函数的实现基于以下几步:
我们可以使用如下代码将这个函数应用到一个特定的输入框上:
<input type="text" onkeydown="preventNegativeInput(event)">
注意,这个函数只能防止用户通过键盘输入负数,而无法防止用户通过粘贴文本或使用其他方法输入负数。如果需要更严格的控制,最好在服务器端进行数据验证。