HTML 自動糾正全域性屬性
autocorrect 全域性屬性是一個 列舉 屬性,用於控制是否為拼寫和/或標點符號錯誤啟用可編輯文字的自動糾正。
具體的自動糾正行為,包括替換哪些詞語,取決於使用者代理和底層裝置提供的服務。例如,在 macOS 上,使用者代理可能會依賴 註冊的替換文字和標點符號。其他裝置和瀏覽器可能採用不同的方法。
自動糾正與可編輯文字元素相關
<input>元素,除了password、email和url型別(這些型別不支援自動糾正)之外。<textarea>元素。- 所有設定了
contenteditable屬性的元素。
可編輯元素預設啟用自動糾正,除非它們巢狀在 <form> 元素內,此時預設值可能從表單繼承。顯式設定該屬性會覆蓋預設值。
值
可能的值是
on或""(空字串)-
啟用拼寫和標點符號錯誤的自動糾正。
關閉-
停用可編輯文字的自動糾正。
不支援自動糾正的 <input> 元素型別始終處於 off 狀態:password、email 和 url。
對於所有其他可編輯元素,將上面列出的值以外的任何值都視為 on。未巢狀在 <form> 中的元素的預設值為 on。
巢狀在 <form> 中時,如果設定了 autocorrect,以下元素將從表單繼承其預設值:<button>、<fieldset>、<input>、<output>、<select> 和 <textarea>。
示例
基本示例
此示例演示了 autocorrect 屬性的基本用法。
HTML
我們包含了兩個文字 <input> 元素,它們的 autocorrect 屬性值不同。
<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 以外的任何值)。
<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 屬性值。
為按鈕添加了一個點選處理程式,允許您重置輸入的文字和日誌。
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 |
瀏覽器相容性
載入中…
另見
- 所有 全域性屬性。
spellcheck.