HTML 屬性:disabled

布林型disabled屬性,如果存在,則使元素不可變、不可聚焦,甚至不與表單一起提交。使用者既不能編輯也不能聚焦該控制元件,也不能聚焦其表單控制元件後代。

試用

概述

如果在表單控制元件上指定了disabled屬性,則該元素及其表單控制元件後代不參與約束驗證。通常情況下,瀏覽器會將此類控制元件灰顯,並且不會接收任何瀏覽事件,例如滑鼠點選或與焦點相關的事件。

disabled屬性受<button><fieldset><optgroup><option><select><textarea><input>支援。

此布林型停用屬性表示使用者無法與控制元件或其後代控制元件進行互動。如果未指定此屬性,則控制元件將從包含元素(例如 fieldset)繼承其設定;如果不存在具有 disabled 屬性設定的包含元素,並且控制元件本身也不具有該屬性,則控制元件處於啟用狀態。如果在 <optgroup> 上宣告,則選擇仍然可互動(除非另行停用),但選項組中的任何專案均不可選擇。

注意: 如果 <fieldset> 被停用,則後代表單控制元件將全部被停用,但 <legend> 中的表單控制元件除外。

當支援元素應用 disabled 屬性時,:disabled 偽類也應用於它。相反,支援 disabled 屬性但未設定該屬性的元素將匹配 :enabled 偽類。

此布林型屬性可阻止使用者與按鈕互動。如果未設定此屬性,則按鈕仍可能從包含元素(例如 <fieldset>)中停用;如果不存在具有 disabled 屬性設定的包含元素,則按鈕處於啟用狀態。

與其他瀏覽器不同,Firefox 會在頁面載入之間保留 <button> 的動態停用狀態。使用 autocomplete 屬性控制此功能。

屬性互動

disabledreadonly 之間的區別在於,只讀控制元件仍然可以正常工作並且仍然可獲得焦點,而停用控制元件則無法獲得焦點並且不會與表單一起提交,並且通常在啟用之前不會像控制元件一樣工作。

由於停用欄位無法更改其值,因此 required 對也指定了 disabled 屬性的輸入沒有任何影響。此外,由於元素變得不可變,大多數其他屬性(如 pattern)將沒有效果,直到控制元件被啟用。

注意: required 屬性在指定 disabled 屬性的輸入上不允許使用。

可用性

瀏覽器會將停用的表單控制元件顯示為灰色,因為停用的表單控制元件是不可變的,不會獲得焦點或任何瀏覽事件(如滑鼠點選或與焦點相關的事件),並且不會與表單一起提交。

如果支援元素上存在,則 :disabled 偽類將匹配。如果未包含該屬性,則 :enabled 偽類將匹配。如果元素不支援停用屬性,則該屬性將沒有效果,包括不會導致與 :disabled:enabled 偽類匹配。

約束驗證

如果元素被 disabled,則該元素的值無法獲得焦點,無法被使用者更新,並且不參與約束驗證。

示例

當表單控制元件被停用時,許多瀏覽器預設情況下會以淺色、灰色的方式顯示它們。以下是一些停用複選框、單選按鈕、<option><optgroup> 的示例,以及一些透過在祖先 <fieldset> 元素上設定停用屬性來停用的表單控制元件。 <option> 被停用,但 <select> 本身沒有。我們可以透過向元素而不是其後代新增屬性來停用整個 <select>

html
<fieldset>
  <legend>Checkboxes</legend>
  <p>
    <label>
      <input type="checkbox" name="chbox" value="regular" /> Regular
    </label>
  </p>
  <p>
    <label>
      <input type="checkbox" name="chbox" value="disabled" disabled /> disabled
    </label>
  </p>
</fieldset>

<fieldset>
  <legend>Radio buttons</legend>
  <p>
    <label> <input type="radio" name="radio" value="regular" /> Regular </label>
  </p>
  <p>
    <label>
      <input type="radio" name="radio" value="disabled" disabled /> disabled
    </label>
  </p>
</fieldset>

<p>
  <label
    >Select an option:
    <select>
      <optgroup label="Group 1">
        <option>Option 1.1</option>
      </optgroup>
      <optgroup label="Group 2">
        <option>Option 2.1</option>
        <option disabled>Option 2.2</option>
        <option>Option 2.3</option>
      </optgroup>
      <optgroup label="Group 3" disabled>
        <option>Disabled 3.1</option>
        <option>Disabled 3.2</option>
        <option>Disabled 3.3</option>
      </optgroup>
    </select>
  </label>
</p>

<fieldset disabled>
  <legend>Disabled fieldset</legend>
  <p>
    <label>
      Name: <input type="radio" name="radio" value="regular" /> Regular
    </label>
  </p>
  <p>
    <label>Number: <input type="number" /></label>
  </p>
</fieldset>

規範

規範
HTML 標準
# attr-fe-disabled
HTML 標準
# attr-optgroup-disabled
HTML 標準
# attr-option-disabled

瀏覽器相容性

html.elements.button.disabled

BCD 表格僅在啟用 JavaScript 的瀏覽器中載入。

html.elements.fieldset.disabled

BCD 表格僅在啟用 JavaScript 的瀏覽器中載入。

html.elements.input.disabled

BCD 表格僅在啟用 JavaScript 的瀏覽器中載入。

html.elements.optgroup.disabled

BCD 表格僅在啟用 JavaScript 的瀏覽器中載入。

html.elements.option.disabled

BCD 表格僅在啟用 JavaScript 的瀏覽器中載入。

html.elements.select.disabled

BCD 表格僅在啟用 JavaScript 的瀏覽器中載入。

html.elements.textarea.disabled

BCD 表格僅在啟用 JavaScript 的瀏覽器中載入。

另請參閱