代码之家  ›  专栏  ›  技术社区  ›  Vibin Jith

我的javascript代码在mozilla firefox中不起作用

  •  4
  • Vibin Jith  · 技术社区  · 14 年前

    这是我的代码使文本框只接受数字。

    <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 回复  |  直到 14 年前
        1
  •  8
  •   Delan Azabani    14 年前

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

    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
    }
    
        2
  •  0
  •   2ndkauboy    14 年前

    Firefox需要在处理程序的调用中包含事件,并且需要返回“false”来忽略某个操作。此代码可能适用于:

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

    但我想你可以跳过event.returnValue=空;

        3
  •  0
  •   Jla    14 年前

    与IE相反,“event”在Firefox中不是一个全局变量。所以你必须传递所需的按键信息作为参数。

        4
  •  0
  •   ashish.chotalia    14 年前

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

    谢谢,

    阿什乔塔利亚