HTML 自動糾正全域性屬性

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

autocorrect 全域性屬性是一個 列舉 屬性,用於控制是否為拼寫和/或標點符號錯誤啟用可編輯文字的自動糾正。

具體的自動糾正行為,包括替換哪些詞語,取決於使用者代理和底層裝置提供的服務。例如,在 macOS 上,使用者代理可能會依賴 註冊的替換文字和標點符號。其他裝置和瀏覽器可能採用不同的方法。

自動糾正與可編輯文字元素相關

可編輯元素預設啟用自動糾正,除非它們巢狀在 <form> 元素內,此時預設值可能從表單繼承。顯式設定該屬性會覆蓋預設值。

可能的值是

on"" (空字串)

啟用拼寫和標點符號錯誤的自動糾正。

關閉

停用可編輯文字的自動糾正。

不支援自動糾正的 <input> 元素型別始終處於 off 狀態:passwordemailurl

對於所有其他可編輯元素,將上面列出的值以外的任何值都視為 on。未巢狀在 <form> 中的元素的預設值為 on

巢狀在 <form> 中時,如果設定了 autocorrect,以下元素將從表單繼承其預設值:<button><fieldset><input><output><select><textarea>

示例

基本示例

此示例演示了 autocorrect 屬性的基本用法。

HTML

我們包含了兩個文字 <input> 元素,它們的 autocorrect 屬性值不同。

html
<label for="vegetable">A vegetable: </label>
<input id="vegetable" name="vegetable" type="text" autocorrect="on" />

<label for="fruit">A fruit: </label>
<input id="fruit" name="fruit" type="text" autocorrect="off" />

結果

在上面的水果和蔬菜文字輸入框中輸入無效文字。如果您的瀏覽器支援自動糾正,並且底層裝置提供了相應的替換,那麼蔬菜名稱輸入框中的拼寫錯誤應該會被自動糾正。水果名稱輸入框中的拼寫錯誤則不應被糾正。

啟用和停用自動糾正

此示例展示瞭如何使用 autocorrect 屬性來啟用和停用自動糾正。

HTML

HTML 標記定義了一個 <button>、一個型別為 type="text" 的 "name" <input> 元素、一個 "bio" <textarea> 元素,以及兩個 <label> 元素。

“username” 元素設定了 autocorrect="off",因為自動糾正姓名會很煩人!“bio” 沒有指定 autocorrect 的值,這意味著它已啟用(我們可以將其設定為 off 以外的任何值)。

html
<button id="reset">Reset</button>
<label for="username">Name: </label>
<input id="username" name="username" type="text" autocorrect="off" />
<label for="bio">Biography: </label>
<textarea id="bio" name="bio"></textarea>

JavaScript

程式碼透過檢查 autocorrect 是否存在於原型上,來判斷是否支援 autocorrect。如果不存在,則記錄該事實。如果存在,則記錄每個文字輸入元素的 autocorrect 屬性值。

為按鈕添加了一個點選處理程式,允許您重置輸入的文字和日誌。

js
const resetButton = document.querySelector("#reset");
const userNameElement = document.querySelector("#username");
const bioElement = document.querySelector("#bio");

if (!("autocorrect" in HTMLElement.prototype)) {
  log("autocorrect not supported");
} else {
  log(`userNameElement.autocorrect: ${userNameElement.autocorrect}`);
  log(`bioElement.autocorrect: ${bioElement.autocorrect}`);
}

resetButton.addEventListener("click", (e) => {
  userNameElement.value = "";
  bioElement.value = "";
});

結果

如果您的瀏覽器支援自動糾正,“Biography”(傳記)和“Name”(姓名)輸入框下方的日誌區域應該顯示“Biography”輸入框啟用了自動糾正,而“Name”輸入框未啟用。

在姓名和傳記文字輸入框中輸入無效文字。如果裝置有替代詞,它將被用於自動糾正“Biography”輸入框中的文字(僅限)。

規範

規範
HTML
# attr-autocorrect

瀏覽器相容性

另見