0

編集:これを投稿したとき、簡単に実行できるコードを見つけました。:D

この投稿には、私にとって完璧に機能する jQuery ソリューションがあります。


ユーザーがボタンをクリックすると、テキストエリア内の選択したテキストの周りに BBCode タグを追加するスクリプトがあります。ボタンをクリックすると、タグが追加されますtextarea.focus()。タグが追加されたため、テキスト選択はタグを追加する前と同じ位置にあります。その結果、現在選択されているのは、元の選択されたテキストではありません。

現在のテキストエリアのコードは次のとおりです。

$('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 に答える