【问题标题】: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>