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

瀏覽器相容性

另見