文本域光标处插入内容

3,007 阅读1分钟

现在我们有一个输入框和一个按钮:

<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); 
}