jquery在光标位置插入内容指定内容(input、textarea)通用
在jQuery中,可以使用以下方法在input或textarea的光标位置插入指定内容:
$.fn.extend({
insertAtCaret: function(myValue){
this.each(function(){
// 获取input或textarea当前的内容
var $this = $(this);
var startPos = $this[0].selectionStart;
var endPos = $this[0].selectionEnd;
// 保存当前内容的前半部分
var scrollTop = this.scrollTop;
var currentValue = $(this).val();
// 插入指定内容
$(this).val(currentValue.substring(0, startPos) + myValue + currentValue.substring(endPos, currentValue.length));
// 如果需要,将滚动位置恢复到光标位置
this.scrollTop = scrollTop;
// 重新设置光标位置
$this[0].selectionStart = startPos + myValue.length;
$this[0].selectionEnd = startPos + myValue.length;
});
}
});
// 使用方法:
$('input, textarea').insertAtCaret('插入的内容');
这段代码定义了一个jQuery方法insertAtCaret
,它允许你在选择的input或textarea元素的光标位置插入指定的内容。使用时,只需调用$('input, textarea').insertAtCaret('插入的内容')
即可。
评论已关闭