2010-05-27 31 views
4

这是我的代码,仅用于制作文本框接受编号。我的JavaScript代码在mozilla firefox中不起作用

<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中。

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

回答

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 
} 
+3

您已经使用'event'在'if'声明 - 它不应该只是'e'? – Amarghosh 2010-05-27 09:34:57

+1

是的。对于那个很抱歉;当复制OP的代码时忘了改变它。固定。 – 2010-05-27 09:50:39

0

火狐需要处理程序的调用中的事件,它需要返回“假”忽略的动作。此代码可能工作:

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

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

0

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

0

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

感谢,

阿希什Chotalia

相关问题