所以我编写了一些简单的PHP“合并标签”,用于表单。我希望他们能够“点击”输入文本框。
我有一些基本代码,“有效”。它将合并标签放入并重新复制框 - 但是它将光标放在您键入的任何内容之后,但是在所有合并标记的前面?
如果我输入:
[Howdy ]
然后点击{firstname}
,我得到:
[Howdy {firstname}]
太棒了!
但光标在“你好”和{firstname}
之间,如此:
[Howdy |{firstname}]
我有一个very simple fiddle set up来展示问题所在。我一直在尝试一起使用.val()
和.focus()
答案 0 :(得分:5)
将selectionStart
属性设置为当前selectionStart
的总和以及要添加的字符串的长度。
$("#test").prop('selectionStart', function (_, ss) {
return ss + mtag.length;
});
答案 1 :(得分:2)
<强> jsFiddle Demo 强>
只需像这样调整文本区域的selectionStart
变量:
$('#test')[0].selectionStart = $('#test').val().length;