HTMLInputElement: phương thức setSelectionRange()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Phương thức HTMLInputElement.setSelectionRange() đặt vị trí bắt đầu và kết thúc của lựa chọn văn bản hiện tại trong phần tử <input> hoặc <textarea>. Phương thức này cập nhật trạng thái lựa chọn ngay lập tức, mặc dù phần đánh dấu trực quan chỉ xuất hiện khi phần tử được focus.

Tùy chọn, bạn có thể chỉ định hướng mà lựa chọn được coi là đã xảy ra. Điều này cho phép bạn chỉ định, ví dụ, rằng lựa chọn được đặt bằng cách người dùng nhấp và kéo từ cuối văn bản đã chọn về phía đầu.

Phương thức này cập nhật các thuộc tính HTMLInputElement.selectionStart, HTMLInputElement.selectionEnd, và HTMLInputElement.selectionDirection trong một lệnh gọi, bất kể phần tử có được focus hay không. Phần đánh dấu lựa chọn trực quan chỉ xuất hiện khi phần tử có focus.

Phần tử phải thuộc một trong các loại đầu vào sau: password, search, tel, text, hoặc url. Nếu không, trình duyệt sẽ ném ra ngoại lệ InvalidStateError.

Nếu bạn muốn chọn tất cả văn bản của phần tử đầu vào, bạn có thể sử dụng phương thức HTMLInputElement.select() thay thế.

Cú pháp

js
setSelectionRange(selectionStart, selectionEnd)
setSelectionRange(selectionStart, selectionEnd, selectionDirection)

Tham số

selectionStart

Chỉ mục dựa trên 0 của ký tự đầu tiên được chọn. Một chỉ mục lớn hơn độ dài của giá trị phần tử được coi là trỏ đến cuối giá trị.

selectionEnd

Chỉ mục dựa trên 0 của ký tự sau ký tự được chọn cuối cùng. Một chỉ mục lớn hơn độ dài của giá trị phần tử được coi là trỏ đến cuối giá trị. Nếu selectionEnd nhỏ hơn selectionStart, thì cả hai đều được coi là giá trị của selectionEnd.

selectionDirection Optional

Một chuỗi cho biết hướng mà lựa chọn được coi là đã được thực hiện. Các giá trị có thể:

  • "forward"
  • "backward"
  • "none" nếu hướng không xác định hoặc không liên quan. Giá trị mặc định.

Giá trị trả về

Không có (undefined).

Ngoại lệ

InvalidStateError DOMException

Ném ra nếu phần tử không thuộc một trong các loại đầu vào sau: password, search, tel, text, hoặc url.

Ví dụ

Nhấp vào nút trong ví dụ này để chọn ký tự thứ ba, thứ tư và thứ năm trong hộp văn bản ("zil" trong từ "Mozilla").

HTML

html
<input type="text" id="text-box" size="20" value="Mozilla" />
<button>Chọn văn bản</button>

JavaScript

js
function selectText() {
  const input = document.getElementById("text-box");
  input.focus();
  input.setSelectionRange(2, 5);
}

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

Kết quả

Đặc tả kỹ thuật

Specification
HTML
# dom-textarea/input-setselectionrange-dev

Tương thích trình duyệt

Xem thêm