需求描述
我想实现,点击按钮,在输入框光标处插入字符串。
解决方法
扩展 JQuery ,在光标所在位置插入指定字符,添加下面 js 在页面中。
(function($){
$.fn.extend({
insertAtCaret: function(myValue){
var $t=$(this)[0];
if (document.selection) {
this.focus();
sel = document.selection.createRange();
sel.text = myValue;
this.focus();
}
else
if ($t.selectionStart || $t.selectionStart == '0') {
var startPos = $t.selectionStart;
var endPos = $t.selectionEnd;
var scrollTop = $t.scrollTop;
$t.value = $t.value.substring(0, startPos) + myValue + $t.value.substring(endPos, $t.value.length);
this.focus();
$t.selectionStart = startPos + myValue.length;
$t.selectionEnd = startPos + myValue.length;
$t.scrollTop = scrollTop;
}
else {
this.value += myValue;
this.focus();
}
}
})
})(jQuery)
调用方法
首先获取 input 输入框对象,然后使用 insertAtCaret 方法在光标位置插入字符串。
$("#input_id").insertAtCaret("字符串")
查看原文