通过单击光标所在位置的按钮将文本输入文本输入

这里我有一个input带有一些按钮的按钮,可以在其中输入文本;


<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>

我想让这些按钮 entera和光标闪烁的地方,b而c不是整个文本的后面。需要什么脚本来实现这个?

http://img4.mukewang.com/64672dc4000105bd02670029.jpg

MYYA
浏览 128回答 1
1回答

偶然的你

运行这段代码;这是您需要的所有代码: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>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript