现在我们有一个输入框和一个按钮:
<textarea id="myInput" type="text"></textarea>
<button onclick="changeValue"></button>
有时候我们需要在外部点击按钮啥的去给输入框添加点东西。
比如文本域中输入了12456,光标放在2后面,点击按钮可以继续添加一个333进去。
这里就要用到selectionStart和selectionEnd;
selectionStart
类型:整数
获取或设置字段文本所选部分的开头。
与selectionEnd属性结合使用。该值指定第一个选定字符的索引。
selectionEnd
类型:整数
获取或设置字段文本所选部分的结尾。
与selectionStart属性结合使用。
该值指定选择后字符的索引。
如果此值等于该selectionStart属性的值,则不会选择任何文本,但是该值指示插入号(光标)在文本框中的位置。
具体用法如下:
changeValue() {
// 获取dom
let textInput = document.getElementById('myInput');
// 获取光标初始索引
let insert = textInput.selectionStart;
// 拼接字符串的形式来得到需要的内容
textInput.value = textInput.value.substr(0, insert) + '333' +
textInput.value.substr(insert);
}