點擊按鈕觸發textarea的focus時,默認光標的位置在最左邊;
需求:focus時讓光標的位置處於最右側
Code
// HTML
<button onclick="setPostion()">click</button>
<textarea id="textarea">123456789</textarea>
//JS
function setPosition() {
let ctrl = document.getElementByID('textarea');
if (ctrl.setSelectionRange) {
//非ie
ctrl.focus(); // 獲取焦點
ctrl.setSelectionRange(-1,-1); // 設置選定區的開始和結束點
} else if (ctrl.createTextRange) {
var range = ctrl.createTextRange(); // 創建選定區
range.collapse(true); // 設置爲摺疊,即光標起點和結束點重疊在一起
range.moveEnd("character", pos); // 移動結束點
range.moveStart("character", pos); // 移動開始點
range.select(); // 選定當前區域
}
}
setSelectionRange()
HTMLInputElement.setSelectionRange
方法用於設定<input>
或<textarea>
元素中當前選中文本的起始和結束位置。
屬性 | 含義 |
selectionStart | 起始位置 |
selectionEnd | 結束位置 |
selectionDirection | forward、backward、none,三種選擇方向,默認爲forward從前向後 |
setSelectionRange(1,4)
setSelectionRange(-1,-1)