【问题标题】:jQuery - Position cursor AFTER inserting text in textareajQuery - 在 textarea 中插入文本后定位光标
【发布时间】:2016-01-29 01:49:52
【问题描述】:

我的问题很简单,但我想不通。

我正在使用我在here 附近找到的方法在文本区域中插入文本。那个方法,在实际光标位置插入文字就可以了。

但我想将光标定位在插入的文本之间。 我将插入的文本是:****__~~~~[](http://) 我知道,这只是一些随机符号。但它是为了一个eregi。 我想将光标定位在插入的字符之间,在**here**_here_~~HERE~~ 上,我需要定位在第一个[] 之间的最后一个,它是[HERE](http://)

应该没那么难,但我就是不知道该怎么做。有什么帮助吗?

【问题讨论】:

    标签: jquery position cursor textarea


    【解决方案1】:

    使用以下函数:

    工作示例Caret Test

    function setSelectionRange(input, selectionStart, selectionEnd) {
      if (input.setSelectionRange) {
        input.focus();
        input.setSelectionRange(selectionStart, selectionEnd);
      } else if (input.createTextRange) {
        var range = input.createTextRange();
        range.collapse(true);
        range.moveEnd('character', selectionEnd);
        range.moveStart('character', selectionStart);
        range.select();
      }
    }
    
    function setCaretToPos(input, pos) {
      setSelectionRange(input, pos, pos);
    }
    
    $("#addStarsCode").click(function() {
      var my_i_val = $("#my_textarea").val();
    
      $("#my_textarea").val(my_i_val + '****');
      setCaretToPos($("#my_textarea")[0], $("#my_textarea").val().length-2);
    });
    <textarea id=my_textarea name=my_textarea> I Am A Default Text</textarea><br>
    <button id=addStarsCode>Add ****</button>
    

    【讨论】:

      猜你喜欢
      • 2011-04-07
      • 1970-01-01
      • 2010-11-07
      • 1970-01-01
      • 2011-07-09
      • 2012-10-10
      • 2016-11-14
      • 1970-01-01
      相关资源
      最近更新 更多