JavaScript无法在FF浏览器中运行

时间:2014-03-21 06:45:40

标签: javascript html firefox

我有以下JavaScript代码:

/* Only numbers input in the CELL text box */
function ValidateKeyNumber() 
{   
    var key=window.event.keyCode;
    var allowed='0123456789';

    return allowed.indexOf(String.fromCharCode(key)) !=-1 ;
}

这个JS在IE& Chrome但不在FF中。你能告诉我这有什么问题吗?我需要JS在这三种主流浏览器中工作。

供参考:

  1. 我使用最新的FF版本。
  2. 在FF中启用了JavaScript。
  3. 我不使用jQuery
  4. 任何帮助将不胜感激。

    更新

    完整页面代码:

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>JavaSCript Input Test</title>
    <script>
    /* Only numbers in mobile text-box */
    function ValidateKeyNumber() 
    {   
        var key=window.event.keyCode;
        var allowed='0123456789';
    
        return allowed.indexOf(String.fromCharCode(key)) !=-1 ;
    }
    </script>
    
    </head>
    
    <body>
    
    <form>
    <label>Cell Number:</label><input type="text" name="cell" size="30" maxlength="10" onKeyPress="return ValidateKeyNumber()"/>
    </form>
    
    </body>
    </html>
    

1 个答案:

答案 0 :(得分:3)

问题是Firefox中没有定义window.event。解决方案是使用传递给事件处理程序的参数,例如

<label>Cell Number:</label><input type="text" name="cell" size="30" maxlength="10" onKeyPress="return ValidateKeyNumber(event)"/>

function ValidateKeyNumber(event) {   
    var key=(event||window.event).keyCode;
    var allowed='0123456789';

    return allowed.indexOf(String.fromCharCode(key)) !=-1 ;
}