2010-05-27 34 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

相關問題