javascript - 将光标设置在两个引号之间

标签 javascript

我有一个文本区域,当我单击链接时,会插入 2 个双引号:

<textarea name="comment" id="comment" placeholder="Comment..."></textarea>
<div id="insert">
 <a href="javascript:;" title='""'>QUOTES</a>
</div>
    <script type="text/javascript" src="jscript.js"></script>
    <script type="text/javascript">
        $('#insert a').click(function () {
   var smiley = $(this).attr('title');
   ins2pos(smiley, 'comment');
});

function ins2pos(str, id) {
   var TextArea = document.getElementById(id);
   var val = TextArea.value;
   var before = val.substring(0, TextArea.selectionStart);
   var after = val.substring(TextArea.selectionEnd, val.length);

   TextArea.value = before + str + after;
   setCursor(TextArea, before.length + str.length);

}

function setCursor(elem, pos) {
   if (elem.setSelectionRange) {
      elem.focus();
      elem.setSelectionRange(pos, pos);
   } else if (elem.createTextRange) {
      var range = elem.createTextRange();
      range.collapse(true);
      var posr = pos - 1;
      range.moveEnd('character', posr);
      range.moveStart('character', posr);
      range.select();
   }
}
</script>

当单击 QUOTE 链接时,光标会移到文本区域中的最后一个字符之后,如下所示 ""| 但我希望光标位于 2 个引号之间,如下所示 “|”

最佳答案

这就是解决方案

setCursor(TextArea, before.length + str.length - 1);

关于javascript - 将光标设置在两个引号之间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36921257/

相关文章:

Javascript 'this' 引用 - 有人可以解释这个简单的例子吗?

javascript - 如何从 HTML 文本中生成 DOM 对象

javascript - 如何编辑源自超链接(<a href> 标记)的 HTTP GET 请求的授权 header

javascript - 在 jquery 中相当于 .done 的 Angular

javascript - D3动态网络实时添加节点时速度慢

javascript - 组的 D3 v4 更新模式

Javascript 实现困境 : looking for a class with method overriding solution

javascript - Mongoose:以与模式相同的顺序检索数据

javascript - CSS/JS : Align tiles left and top

javascript - __defineGetter__ 在 node.js 中被弃用了吗?