首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

ASP.NET 網頁實現 Enter 鍵自動移動焦點(模擬 DOS 輸入習慣)

     編輯:關於C語言

背景動機

早期 DOS 時代,資料輸入人員習慣按 Enter 鍵換行輸入。Windows 普及後,標準行為改為 Tab 鍵或滑鼠點擊切換焦點,造成舊用戶適應困難。本文提供一個通用 JavaScript 方案,在 ASP.NET (含 VB.NET、C#) 網頁中實現 Enter 鍵自動跳至下一個可輸入控制項。

核心原理

利用 DOM 的 document.forms[0].elements 集合遍歷表單所有元素,在 onkeypress 事件中攔截鍵碼 13 (Enter),依據元素類型決定是否移動焦點至下一個可輸入控制項(文字框、下拉選單、核取方塊等),並自動選取文字內容方便覆寫。

完整 JavaScript 實作 (WebEnter.js)

var JumpTypeArray = new Array("text","password","textarea","checkbox","radio",
    "select","select-one","select-multiple","file"); // 可獲得焦點的元素類型
var DebarTypeArray = new Array("submit","reset","button","checkbox","radio",
    "select","select-one","select-multiple","hidden"); // 需排除自動選取文字的類型

function inStrArray(src, dec) {
    for (var i = 0; i < dec.length; i++) {
        if (src == dec[i]) return i;
    }
    return -1;
}

function checkCR(evt) {
    evt = evt || window.event;
    var node = evt.target || evt.srcElement;
    var frm = document.forms[0]; // 僅支援單一表單頁面

    if (evt.keyCode == 13 && inStrArray(node.type, JumpTypeArray) != -1) {
        for (var i = 0; i < frm.elements.length; i++) {
            if (frm.elements[i].name == node.name) {
                if ((i + 1) < frm.elements.length) {
                    if (inStrArray(frm.elements[i+1].type, JumpTypeArray) != -1) {
                        frm.elements[i+1].focus();
                        if (inStrArray(frm.elements[i+1].type, DebarTypeArray) == -1) {
                            frm.elements[i+1].select();
                        }
                    }
                    return false; // 取消表單提交
                } else {
                    return true; // 最後一個元素允許提交
                }
            }
        }
    }
}

document.onkeypress = checkCR;

使用方式

  1. 將上述代碼存為 WebEnter.js。
  2. 在需啟用 Enter 換行的頁面引用:
    <script language="JavaScript" src="path/WebEnter.js"></script>

注意事項與限制

  • 頁面僅能有一個 <form> 表單。
  • 頁面內不得有重名的控制項 (name 屬性唯一)。
  • 僅支援 IE 4.x 以上版本;Netscape 系列瀏覽器需修改 DOM 存取方式。

適用環境

Windows 9x/NT/2000/XP + ASP/JSP/PHP/ASP.NET + IE 4.x+

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved