Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

HTML 文字框唯讀/停用完整教學:readonly vs disabled 差異詳解

編輯:Windows 10 系統介紹

網頁表單需「顯示資料但不可編輯」時,常用 `` 或 ``。兩者外觀相似但提交行為截然不同,另有 CSS `pointer-events:none` + JS `onfocus="this.blur()"` 進階作法。完整比較如下。

方法一:readonly(推薦:需提交數值)

<input type="text" value="無法修改" readonly>

readonly 程式碼範例

  • 使用者可選取、複製文字。
  • 表單送出時會攜帶此欄位數值。
  • 可透過 CSS 區分樣式:`input[readonly] { background:#f5f5f5; }`

方法二:disabled(完全禁止互動)

<input type="text" value="完全鎖定" disabled>

disabled 程式碼範例

  • 使用者無法焦點、無法選取、無法複製。
  • 表單送出時不會攜帶此欄位(後端收不到)。
  • 瀏覽器自動灰化樣式,不可覆寫(除非用 CSS `opacity`)。

方法三:JS 強制失焦(不改屬性,僅行為鎖定)

<input type="text" value="鎖定中" onfocus="this.blur()">
  • 滑鼠點擊瞬間失去焦點,視覺上像 disabled 但實際屬性正常。
  • 表單送出會攜帶數值。
  • 無障礙存取較差,螢幕閱讀器可能誤判,建議搭配 `aria-readonly="true"`。

關鍵字補充

事件/屬性說明
onfocus元素取得焦點時觸發
focus()程式化讓元素取得焦點
onblur元素失去焦點時觸發
blur()程式化讓元素失去焦點

選擇建議

  • 需送出數值 → readonly
  • 完全不互動、不送出 → disabled
  • 特殊 UI 需求(如自訂右鍵選單) → JS blur + CSS pointer-events:none

掌握三種作法差異,表單唯讀控制不再踩坑!

Copyright © Windows教程網 All Rights Reserved