首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

JavaScript 禁用輸入框上下方向鍵默認行為(光標跳轉)

     編輯:程式設計綜合問答

現象

<input> 中按 ↑ 光標跳到開頭,按 ↓ 跳到結尾,需禁用此默認行為但保留字符輸入。

解決方案

<input type="text" onkeydown="if(event.keyCode===38||event.keyCode===40) return false;" />

原理

  • keydown 事件中返回 false 取消默認動作(瀏覽器原生行為)。
  • keyCode 38 = ↑,40 = ↓。
  • Chrome/Firefox/Edge 均支持此寫法。

現代寫法(推薦)

document.getElementById('myInput').addEventListener('keydown', function(e) {
    if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {
        e.preventDefault(); // 標準取消默認行為
    }
});
  • 用 e.key 代替已棄用 keyCode。
  • preventDefault() 比返回 false 更語義清晰、不影響事件冒泡。

注意

若輸入框需支持多行(textarea),上下鍵默認換行,**不應禁用**,需根據具體業務決定。

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