星期五, 3月 14, 2008

[程式設計] 在文字方塊按下 Enter 後做動作


原本利用 Submit 按鈕時都沒有問題,不過,因為在表單送出前要先做檢查,所以把 submit 改成 button,這一來在文字方塊按 【Enter】就沒有作用了。


解決之道是利用 onKeyDown 這個事件來捕捉 【Enter】的 KeyCode,作法如下:
------------------------------------------------------------------------------------------
<script language=javascript>
function EnterToTab(){
if(event.keyCode==13)
event.keyCode=9;
}

</
script>
------------------------------------------------------------------------------------------
在文字方塊中加入 onkeydown="EnterToTab();" 的屬性,這樣一來就可以了。


不過,這時又會出現新的問題,在 firefox 無法捕捉到 Enter 的 KeyCode,原來兩者的捕捉 KeyCode 的屬性不一樣,完整解決方式如下:


------------------------------------------------------------------------------------------
function EnterToSubmit(e){

var keynum;
if(window.event) { // IE
keynum = e.keyCode;
}else if(e.which) { // Netscape/Firefox/Opera
keynum = e.which;
}
if(keynum == 13){
document.forms["formName"].submit();
}


}
------------------------------------------------------------------------------------------
onKeyDown="EnterToSubmit(event);"