2

そこで、フォームで使用する単純な PHP の「マージ タグ」をいくつかプログラムしました。テキストボックスに入力するために「クリック可能」にしたいと思っています。

「機能する」基本的なコードがいくつかあります。マージ タグを挿入し、ボックスに再びフォーカスを当てますが、カーソルは入力したものの後ろに置かれますが、すべてのマージ タグの前に置かれますか?

私が入力した場合:

[Howdy ]

をクリックすると{firstname}、次のようになります。

[Howdy {firstname}]

これは素晴らしいです!

しかし、カーソルは「howdy」と{firstname}次のようの間にあります。

[Howdy |{firstname}]

問題が何であるかを示すために、非常に単純なフィドルをセットアップしました。.val()と を.focus()一緒に使おうとしてきた

4

2 に答える 2

5

プロパティを、現在の文字列と追加する文字列の長さのselectionStart合計に設定します。selectionStart

$("#test").prop('selectionStart', function (_, ss) {
    return ss + mtag.length;
});     

http://jsfiddle.net/ExplosionPIlls/GCpvy/1/

于 2013-03-13T00:07:24.410 に答える
2

jsFiddle デモ

テキスト領域のselectionStart変数を次のように調整するだけです。

$('#test')[0].selectionStart = $('#test').val().length;
于 2013-03-13T00:13:16.370 に答える