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
.