我的javascript代码无法在mozilla firefox中运行

时间:2010-05-27 09:23:08

标签: asp.net javascript

这是我的代码,仅用于创建文本框接受号码。

<asp:TextBox ID="txtRotationNo" runat="server" onkeydown="return NumberOnly();" CssClass="textbox"></asp:TextBox>

function NumberOnly () {
    if(!(event.keyCode>=48 && event.keyCode<=57) && event.keyCode!=8) {
        event.returnValue=null;
    }
}

此代码适用于Chrome和Opera,但不适用于Firefox。

你能告诉我这段代码有什么问题吗?

4 个答案:

答案 0 :(得分:8)

代码有很多问题,包括缺少事件参数,以及取消事件的错误方法。在这里,只需用以下代码替换代码:

function NumberOnly(e) {
  e = e || window.event; // remove this if you don't need IE support
  if (!(e.keyCode >= 48 && e.keyCode <= 57) && e.keyCode != 8)
    e.preventDefault();  // standard method of cancelling event
  return false;          // IE method of cancelling event
}

答案 1 :(得分:0)

Firefox需要处理程序调用中的事件,并且需要返回“false”以忽略操作。此代码可能有效:

function NumberOnly(event) {
  if(!(event.keyCode>=48 && event.keyCode<=57) && event.keyCode!=8) {
    event.returnValue=null;
    return false;
  }
}

但我认为你可以跳过event.returnValue = null;

答案 2 :(得分:0)

与IE相反,'event'不是Firefox中的全局变量。因此,您必须将所需的按键信息作为参数传递。

答案 3 :(得分:0)

找到javascript验证函数列表here,在开发过程中非常方便。

谢谢,

Ashish Chotalia