如何设置插入符号值的值[Javascript]

时间:2015-05-04 19:09:59

标签: javascript html

我想将插入符号索引处的char值更改为“[br]”。
我的意思是: 假设我们有一个文本框,一个用户输入了一些文字,过了一段时间他记得他忘了开始一条新线,所以他将他的插入符移动到他想要换行的位置并按回车键\ enter。我想在这一点上添加字符串“[br]”,仅使用javascript。这是我现在得到的:

<textarea id="textarea" onkeydown="javascript:DoLine();"></textarea>

这是DoLine()函数:

    function DoLine() {
    if (event.keyCode == 13) {
      var text = document.getElementById('textarea').value;
      text += "[br]";
      if (text.indexOf("[br]") != text.length) {
        var getTextAfter = text[text.lastIndexOf("[br]")] += "\r";
      }
      document.getElementById('textarea').value = text;
    }
  }

此代码在插入符号所在的textarea instade末尾添加“[br]”。我真的不知道如何获得插入符号的索引,所以我可以将text var转换为字符数组,然后在插入符号的索引处添加“[br]”。 所以任何人都知道如何让我的代码以我想要的方式工作?或任何想法如何获得插入位置?
PS:通过插入我的意思是:
enter image description here
谢谢你:)。

1 个答案:

答案 0 :(得分:1)

感谢@Tyr我找到了答案,这个函数修复了它:

function insertTextAtCursor(el, text) {
var val = el.value, endIndex, range;
if (typeof el.selectionStart != "undefined" && typeof el.selectionEnd != "undefined") {
    endIndex = el.selectionEnd;
    el.value = val.slice(0, el.selectionStart) + text + val.slice(endIndex);
    el.selectionStart = el.selectionEnd = endIndex + text.length;
} else if (typeof document.selection != "undefined" && typeof document.selection.createRange != "undefined") {
    el.focus();
    range = document.selection.createRange();
    range.collapse(false);
    range.text = text;
    range.select();
    }
}