单击时文本区域中的光标位置

时间:2019-06-19 17:57:54

标签: javascript function cursor textarea

我正在开发一个表情符号功能。我的问题是,当我在文本区域中有一个文本并从下拉列表中选择一个表情符号时,即使将光标放在文本的开头,该表情符号也始终会移到文本的结尾,该表情符号会转到文本的结尾这样的文字:

此处有些文字?

代码:

function insertSmiley(smiley)
{
var currentText = document.getElementById("textarea");
var smileyWithPadding = " " + smiley + " ";
currentText.value += smileyWithPadding;
currentText.focus();
}

我尝试删除currentText.focus();,但没有帮助。我还尝试使用jQuery来保持文本区域的焦点,但表情符号仍会到达文本的结尾:

$(window).load(function(){    
var lastFocus;
$("#dropdown-emojis").mousedown(function(e) {
return false;
}); 
});

如何使表情符号显示在放置光标的位置?

1 个答案:

答案 0 :(得分:1)

使用.selectionStart和.selectionEnd知道光标在哪里。

var startPosition = myElement.selectionStart;
    var endPosition = myElement.selectionEnd;
    if(startPosition == endPosition){ 
        newString= currentText.value.substring(0,startPosition)+ " " + smiley + " " + currentText.value.subString(endPosition,currentText.value.lenght());