1. 程式人生 > >回車鍵提交輸入內容(解決火狐不相容問題)

回車鍵提交輸入內容(解決火狐不相容問題)

看看這個對你有沒有幫助:



1.window.event.keyCode的用法:設定或獲取與導致事件的按鍵關聯的 ASCII 按鍵程式碼。
示例:
XML/HTML程式碼
<input type="text" onkeydown="javaScript:if(window.event.keyCode==13) kenNumIE();" />   
<script language="javascript" type="text/javascript">   
function kenNumIE(){   
     alert("你按的是回車鍵!");   
}   
</script> 

說明:當把游標置入輸入框後按回車鍵,就會觸發kenNumIE()事件。(回車鍵的ASCII是13)
但是該方法只對IE有效,原因是Firefox的window物件沒有event屬性,所以window.event是不存在的,Firefox只能在事件控制代碼函式的第一個引數獲取事件物件。

2.相容Firefox的方法:

XML/HTML程式碼
<input type="text" onkeydown="return keyNumAll(event);" >   

<script language="javascript" type="text/javascript">   

function keyNumAll(evt){ 

evt = (evt) ? evt : ((window.event) ? window.event : ""); //相容IE和Firefox獲得keyBoardEvent物件
var key = evt.keyCode?evt.keyCode:evt.which;//相容IE和Firefox獲得keyBoardEvent物件的鍵值 

     if(k == 13){   

         alert("你按的是回車鍵!");   

}   

}   

</script> 


這樣,當你按回車鍵時,就可以觸發keyNumAll(event)事件了。

3.在現實中的應用:
只讓輸入框接受數字輸入:

XML/HTML程式碼
<script language="javascript" type="text/javascript">   

function inputNum(evt){  

    evt = (evt) ? evt : ((window.event) ? window.event : "");  

     var key = evt.keyCode?evt.keyCode:evt.which;

     if((k<=57) && (k>=48)){   

         return true;   

     }else{   

         alert("只能輸入數字!");   

         return false;   

     }   

}   

</script>   

<input type="text" onKeyPress="return inputNum(event);" > 

於是程式碼終於可以在IE和Firefox運行了。
總結一下需要注意的地方:
1. 取得keyBoardEvent物件
2. 取得keyBoardEvent物件的鍵值

3. onkeypress="myKeyPress(event)" 函式需要一個引數,並且引數的名稱為event.