这段javascript代码在chrome中工作,但在firefox中没有

时间:2015-11-24 07:13:49

标签: javascript jquery google-chrome firefox cross-browser

我使用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);
}
}

Demo Here

2 个答案:

答案 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)

link

          $(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);
          }
        }