我正在使用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);
}
}
答案 0 :(得分:0)
根据您的plunker,您需要检查字符y
的变量'0'
。
if (z === '/' && y === '0') {
return "Divide By zero error";
}
这适用于两种浏览器。
注意:它们在两个浏览器中都失败了。
答案 1 :(得分:0)
问题在于 === 运算符,因为它也会执行严格检查(等值且等于)。如果使用typeof()运算符检查y的类型,您会发现它是字符串。如果您将代码更改为y ===" 0"这将导致 y === 0 返回 false 。一切都会好起来的。