HTMLInputElement: setRangeText() 方法

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2020 年 1 月⁩ 起,所有主流浏览器均已支持。

HTMLInputElement.setRangeText() 方法会使用新字符串替换 <input><textarea> 元素中的一段文本。

语法

js
setRangeText(replacement)
setRangeText(replacement, start)
setRangeText(replacement, start, end)
setRangeText(replacement, start, end, selectMode)

参数

replacement

要插入的字符串。

start 可选

要替换的第一个字符的 0 基索引。默认为当前的 selectionStart 值(用户当前选区的开始位置)。

end 可选

要替换的最后一个字符之后的那个字符的 0 基索引。默认为当前的 selectionEnd 值(用户当前选区的结束位置)。

selectMode 可选

一个字符串,定义了文本被替换后,选区应该如何设置。可能的值有:

  • "select" 会选中新插入的文本。
  • "start" 会将选区移动到插入文本的前面。
  • "end" 会将选区移动到插入文本的后面。
  • "preserve" 尝试保留选区。这是默认值。

返回值

无(undefined)。

示例

在此示例中,点击按钮将替换文本框中的部分文本。之后,新插入的文本将被高亮(选中)。

HTML

html
<input
  type="text"
  id="text-box"
  size="30"
  value="This text has NOT been updated." />
<button>Update text</button>

JavaScript

js
function selectText() {
  const input = document.getElementById("text-box");
  input.focus();
  input.setRangeText("ALREADY", 14, 17, "select");
}

document.querySelector("button").addEventListener("click", selectText);

结果

规范

规范
HTML
# dom-textarea/input-setrangetext-dev

浏览器兼容性

另见