我使用Jquery和Javascript创建了一个计算器,一切都在Chrome中运行良好但在Firefox中没有。
function validate(x, y, z) {
if ((isNaN(x) || x == "") || (isNaN(y) || y == "")) {
return "Please Enter A Valid Number";
} else if (z == "/" && y == 0) {
return "Divide By zero error";
} else if (event.keyCode == 32) {
return false;
} else {
return calculation(x, y, z);
}
}
答案 0 :(得分:0)
不要依赖window.event
。这是一种并非所有浏览器都能实现的Microsoft主义。但是,每个处理程序都将接收事件作为参数。明确使用它:
$(document).ready(function() {
$("#first").focus();
$('#first,#second,#oper').keyup(function(evt) {
// HERE ^^^
$('#demo').html(validate(evt.keyCode, $('#first').val(), $('#second').val(), $('#oper').val()));
// and HERE ^^^^^^^^^^^
});
});
function validate(key, x, y, z) {
// and HERE ^^^
if ((isNaN(x) || x == "") || (isNaN(y) || y == "")) {
return "Please Enter A Valid Number";
} else if (z == "/" && y == 0) {
return "Divide By zero error";
} else if (key == 32) {
return false;
} else {
return calculation(x, y, z);
}
}
答案 1 :(得分:0)
$(document).ready(function() {
$("#first").focus();
$('#first,#second,#oper').keyup(function(event) {
$('#demo').html(validate(event,$('#first').val(), $('#second').val(), $('#oper').val()));
});
});
function validate(event,x, y, z) {
if ((isNaN(x) || x == "") || (isNaN(y) || y == "")) {
return "Please Enter A Valid Number";
} else if (z == "/" && y == 0) {
return "Divide By zero error";
} else if (event.keyCode == 32) {
return false;
} else {
return calculation(x, y, z);
}
}