Tôi đang làm việc với một số mã tự động hoàn thành. setSelectionRange()
được sử dụng để chọn văn bản được hoàn thành trong oninput
trình xử lý sự kiện. Nó hoạt động ít nhất trong Firefox 14, nhưng không hoạt động trong Chrome (6, 17).chrome setSelectionRange() không hoạt động trong handler oninput
Giản đoạn mã thể hiện vấn đề là như thế này:
<input type='text' oninput='select()' />
function select(e){
var s = this.value;
if (s.length)
this.setSelectionRange(s.length-1, s.length);
}
tôi sửa lỗi mã trong chrome, và nó quay ra văn bản đã được chọn ở bên phải đầu tiên sau khi setSelectionRange()
được thực hiện , nhưng lựa chọn đã biến mất sau đó.
Nếu tôi ràng buộc xử lý để onclick
thay vì oninput
, như thế này:
<input type='text' onclick='select()' />
sau đó cả hai trình duyệt hoạt động tốt.
Có ai vui lòng cho tôi một số đầu mối để thực hiện lựa chọn trong Chrome không?
Nó có thể là do bạn cần thiết để gọi 'this.focus() 'trước khi cuộc gọi đến setSelectionRange(). Xem ví dụ tại đây https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange#Example –