点击按钮触发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)