Javascript JS中函数的错误执行
我有这段代码,但是为什么当我使用这个函数来验证我的输入字段时,除了+和-键,所有的东西都能工作,甚至我认为它们是真的。我做错了什么Javascript JS中函数的错误执行,javascript,validation,Javascript,Validation,我有这段代码,但是为什么当我使用这个函数来验证我的输入字段时,除了+和-键,所有的东西都能工作,甚至我认为它们是真的。我做错了什么 function validateNumber(event) { var key = window.event ? event.keyCode : event.which; if (event.keyCode == 8 || event.keyCode == 46 || event.keyCode == 37 || event.ke
function validateNumber(event)
{
var key = window.event ? event.keyCode : event.which;
if (event.keyCode == 8 || event.keyCode == 46 || event.keyCode == 37 ||
event.keyCode == 39 || event.keyCode == 107 || event.keyCode == 109 ||
event.keyCode == 32 )
{
return true;
}
else if(key < 48 || key > 57)
{
return false;
}
else return true;
};
函数验证枚举器(事件)
{
var key=window.event?event.keyCode:event.which;
如果(event.keyCode==8 | | event.keyCode==46 | | event.keyCode==37||
event.keyCode==39 | | event.keyCode==107 | | event.keyCode==109||
event.keyCode==32)
{
返回true;
}
否则,如果(键<48 | |键>57)
{
返回false;
}
否则返回true;
};
我没有看到您检查189
(-)和187
(=),这实际上是您键入+时发生的情况。您可能需要检查是否按下Shift键以获得+
如前所述,验证用户输入的总体方法是错误的。您需要检查输入值,而不是单个按键
首先,定义一个验证函数,该函数将使用regexp检查任意文本:
function checkArithmetic(str) {
var regexp = /^[0-9+-]$/;
return regexp.test(str);
}
接下来,将处理程序添加到输入元素:
input.addEventListener('input', function (e) {
var value = input.value;
if (checkArithmetic(value)) {
// OK!
} else {
// error
}
}, false);
完全重复:我从那个问题中提取了代码,但做了一些更改,现在它不能像预期的那样工作。问题是我不能单独访问表单,我只能使用一些js,根据id执行任何操作