0

编辑:正如我发布的那样,我发现了一段很容易做到的代码。:D

这篇文章有一个非常适合我的 jQuery 解决方案。


我有一个脚本,当用户单击按钮时,在文本区域中的选定文本周围添加 BBCode 标签,单击按钮后,添加标签,我重新关注文本区域,textarea.focus()但文本已移动由于添加了标签,文本选择与添加标签之前的位置相同。因此,现在选择的不是原始选择的文本。

这是 textarea 现在的代码:

$('div[id*="custom_button"]').click(function () {
    var start = textarea[0].selectionStart;
    var end = textarea[0].selectionEnd;
    var replacement = '[stuff]' + textarea.val().substring(start, end) + '[/stuff]';
    textarea.val(textarea.val().substring(0, start) + replacement + textarea.val().substring(end, textarea.val().length));
    textarea.focus()
});

我正在考虑以某种方式获取选定的文本,然后在添加标签后找到它,最后重新选择它......这可能吗?我缺少一些简单的解决方案吗?

4

1 回答 1

1

尝试在之前添加此行textarea.focus()

textarea.selectionEnd = (replacement.length)+end;
于 2011-06-21T14:25:03.537 回答