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

HTML 元素 readonly vs disabled vs display:none 差異總表

     編輯:程式設計綜合問答

快速對照表

屬性/樣式視覺狀態可互動表單提交適用元素JS 控制
readonly正常顯示,不可編輯✅ 可焦點、可複製✅ 會提交值<input>, <textarea>el.readOnly = true
disabled灰色/置灰,不可編輯❌ 無法焦點、無法複製❌ 不提交值所有表單元素el.disabled = true
display:none完全隱藏,不佔版面❌ 不可互動❌ 不提交值所有元素el.style.display = 'none'
visibility:hidden隱藏但保留版面空間❌ 不可互動✅ 仍提交值所有元素el.style.visibility = 'hidden'
pointer-events:none正常顯示❌ 滑鼠事件穿透✅ 仍提交值所有元素el.style.pointerEvents = 'none'

唯讀輸入框完整範例

<input type="text" id="readonlyInput" value="Hello World!" readonly>
<script>
  const el = document.getElementById('readonlyInput');
  // JS 動態切換
  el.readOnly = false; // 變可編輯
  el.readOnly = true;  // 回唯讀
</script>

常見場景選擇指南

  • 顯示資料但允許複製: readonly
  • 暫時停用欄位(如未滿足條件): disabled,提交時記得 el.disabled = false 或用隱藏欄位同步值。
  • 條件式顯示/隱藏整個區塊: display:none / display:block。
  • 保留版面但禁用點擊: pointer-events:none(配合半透明樣式提示使用者)。

無障礙 (a11y) 注意

  • readonly 元素仍納入 Tab 順序,螢幕閱讀器可讀取。
  • disabled 元素被排除於 Tab 順序,需搭配 aria-disabled="true" 於可聚焦容器說明。
  • 隱藏內容若需對螢幕閱讀器可用,請用 .sr-only 類別而非 display:none。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved