2

所以我编写了一些简单的PHP“合并标签”以在表单中使用。我希望他们可以“点击”输入到文本框中。

我有一些“有效”的基本代码。它将合并标签放入并重新聚焦框 - 但它将光标放在您输入的任何内容后面,但在所有合并标签的前面?

如果我输入:

[Howdy ]

并点击{firstname},我得到:

[Howdy {firstname}]

这太棒了!

但是光标在“你好”之间,{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 回答