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

浏览器兼容性

另见