本文介绍了通过在光标所在的位置单击按钮,将文本输入到textinput中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在这里,我有一个 input
,其中带有一些将文本输入其中的按钮;
Here I have an input
with some buttons that enters text into it;
<input id="input"/>
<button onclick="enter('a')">a</button>
<button onclick="enter('b')">b</button>
<button onclick="enter('c')">c</button>
<script>
function enter(character){
document.getElementById("input").value+=character;
document.getElementById("input").focus();
}
</script>
我想让这些按钮输入 a
, b
和 c
,光标闪烁,而不是整个文本的后面.要实现此目的需要什么脚本?
I want to make these buttons enter a
, b
and c
where the cursor blinks, not at the back at the whole text. What script is needed to achieve this?
推荐答案
运行此代码段;这就是您需要的所有代码:
Run this code snippet; this is all the code you need:
function insertAtCaret(areaId, text) {
var txtarea = document.getElementById(areaId);
if (!txtarea) {
return;
}
var scrollPos = txtarea.scrollTop;
var strPos = 0;
var br = ((txtarea.selectionStart || txtarea.selectionStart == '0') ?
"ff" : (document.selection ? "ie" : false));
if (br == "ie") {
txtarea.focus();
var range = document.selection.createRange();
range.moveStart('character', -txtarea.value.length);
strPos = range.text.length;
} else if (br == "ff") {
strPos = txtarea.selectionStart;
}
var front = (txtarea.value).substring(0, strPos);
var back = (txtarea.value).substring(strPos, txtarea.value.length);
txtarea.value = front + text + back;
strPos = strPos + text.length;
if (br == "ie") {
txtarea.focus();
var ieRange = document.selection.createRange();
ieRange.moveStart('character', -txtarea.value.length);
ieRange.moveStart('character', strPos);
ieRange.moveEnd('character', 0);
ieRange.select();
} else if (br == "ff") {
txtarea.selectionStart = strPos;
txtarea.selectionEnd = strPos;
txtarea.focus();
}
txtarea.scrollTop = scrollPos;
}
<input id="textareaid" />
<button onclick="insertAtCaret('textareaid', 'a');return false;">a</button>
<button onclick="insertAtCaret('textareaid', 'b');return false;">b</button>
<button onclick="insertAtCaret('textareaid', 'c');return false;">c</button>
这篇关于通过在光标所在的位置单击按钮,将文本输入到textinput中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!