输入值验证在Firefox中不起作用

时间:2015-11-25 03:50:27

标签: javascript

我正在使用javascript执行计算器操作,在验证输入值时一切正常,除了零除错误,无法弄清楚什么是错误的..而且它在Chrome中工作正常但在Firefox中没有!! / p>

function validate(event, x, y, z) {
    if ((isNaN(x) || x === "") || (isNaN(y) || y === "")) {
        return "Please Enter A Valid Number";
    }
    if (z === "") {
        return "Invalid Operator";
    }
    if (z === '/' && y === 0) {
        return "Divide By zero error";
    }
    if (event.keyCode == 32) {
        return false;
    }
    if (event.keyCode == 8) {
        return false;
    } else {
        return calculation(x, y, z);
    }
}

DEMO

2 个答案:

答案 0 :(得分:0)

根据您的plunker,您需要检查字符y的变量'0'

if (z === '/' && y === '0') {
    return "Divide By zero error";
}

这适用于两种浏览器。

注意:它们在两个浏览器中都失败了。

答案 1 :(得分:0)

问题在于 === 运算符,因为它也会执行严格检查(等值且等于)。如果使用typeof()运算符检查y的类型,您会发现它是字符串。如果您将代码更改为y ===" 0"这将导致 y === 0 返回 false 。一切都会好起来的。