当前位置: 首页 > 知识库问答 >
问题:

如何在当前光标位置将文本插入文本区域?

徐麒
2023-03-14

我想创建一个简单的函数,将文本添加到用户光标位置的文本区域中。它需要是一个干净的函数。只是基本的。剩下的我都知道了。

共有3个答案

燕翼
2023-03-14

为了正确的Javascript

HTMLTextAreaElement.prototype.insertAtCaret = function (text) {
  text = text || '';
  if (document.selection) {
    // IE
    this.focus();
    var sel = document.selection.createRange();
    sel.text = text;
  } else if (this.selectionStart || this.selectionStart === 0) {
    // Others
    var startPos = this.selectionStart;
    var endPos = this.selectionEnd;
    this.value = this.value.substring(0, startPos) +
      text +
      this.value.substring(endPos, this.value.length);
    this.selectionStart = startPos + text.length;
    this.selectionEnd = startPos + text.length;
  } else {
    this.value += text;
  }
};
孙嘉悦
2023-03-14

这段代码可以在jQuery 1.9的几行代码中帮助您:http://jsfiddle.net/4MBUG/2/

$('input[type=button]').on('click', function() {
    var cursorPos = $('#text').prop('selectionStart');
    var v = $('#text').val();
    var textBefore = v.substring(0,  cursorPos);
    var textAfter  = v.substring(cursorPos, v.length);

    $('#text').val(textBefore + $(this).val() + textAfter);
});
锺离刚洁
2023-03-14

使用输入元素的属性(适用于

function insertAtCursor(myField, myValue) {
    //IE support
    if (document.selection) {
        myField.focus();
        sel = document.selection.createRange();
        sel.text = myValue;
    }
    //MOZILLA and others
    else if (myField.selectionStart || myField.selectionStart == '0') {
        var startPos = myField.selectionStart;
        var endPos = myField.selectionEnd;
        myField.value = myField.value.substring(0, startPos)
            + myValue
            + myField.value.substring(endPos, myField.value.length);
    } else {
        myField.value += myValue;
    }
}

 类似资料:
  • 我想通过按下按钮将常量字符串插入EditText中。字符串应插入EditText中的当前位置。如果我使用,文本将插入到edittext的末尾。 我怎么能那么做?我找不到合适的方法。

  • 问题内容: 如何使用jQuery在文本字段中设置光标位置?我有一个带有内容的文本字段,我希望用户将光标放在该字段上时将光标定位在某个偏移处。该代码应该看起来像这样: 该setCursorPosition函数的实现是什么样的?如果您的文本字段的内容为abcdefg,则此调用将导致光标的定位如下:abcd | efg。 Java具有类似的功能setCaretPosition。javascript是否存

  • 问题内容: 我有一个textarea,我想知道我是用JavaScript还是光标在textarea的最后一行还是textarea的第一行。 我想到先获取第一个换行符和最后一个换行符的位置,然后再获取光标的位置。 是否可以在文本区域内获取光标位置? 您是否有更好的建议来确定我是在文本区域的第一行还是最后一行? 除非JavaScript如此简单,否则首选jQuery解决方案。 问题答案: 如果没有选择

  • 是否有方法返回字符在JTextField中的位置。我的意思是,如果我有一个JTextField,其中有一些值。例如,该字段包含值ABCDEFJ。用户决定将光标放在字符“C”之后,以输入新值。是否有一种方法来获得他输入新角色的位置。在本例中,将返回3。

  • 我有一个带有图像和文本的标签 我得到了一个直观的结果: 如何更改文本位置?我想在图像下面设置文本?

  • 问题内容: 将焦点设置到元素之后,通过JavaScript将光标放置在输入文本元素中文本末尾的最佳方法(我想是最简单的方法)是什么? 问题答案: 我在IE中遇到了同样的问题(通过RJS /原型设置焦点之后)。当该字段已有值时,Firefox已经将光标留在末尾。IE迫使光标移至文本的开头。 我得出的解决方案如下: IE7和FF3均适用