JS中函数执行错误

Wrong execution on function in JS

本文关键字:错误 执行 函数 JS      更新时间:2023-09-26

我有这段代码,但有些原因是,当我使用这个函数验证输入字段时,除了+和-键之外,其他所有东西都能工作,甚至我认为它们是真的。我做错了什么?

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

我看不到您在检查189-)和187=,当您键入+hift+

如前所述,验证用户输入的方法总体上是错误的。您需要检查输入的值,而不是单个击键。

首先,定义一个验证函数,用正则表达式检查任意文本:

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