java 文本域光标在头部_如何在input、textarea中光标处插入指定内容

RT,或许你们脑子里首先想到的是使用富文本编辑器,那么恭喜你,想法是对的。But,很多富文本编辑器并没有提供很多的api,这里推荐使用百度Ueditor,它提供了很好的api以及文档,但是话又说回来,如果使用这个,有点大材小用了。

那么,说回正题,如题,如何使用简单的代码实现这一需求呢,话不多说,老规矩,直接上代码:

//html代码:

插入

//js代码:

$('#textarea').on('select',function () {

message.setCaret(this);

}).on('click',function () {

message.setCaret(this);

}).on('keyup',function () {

message.setCaret(this);

});

$('#insert').on('click',function () {

var textareaStr = $('#textarea').val();

message.insertAtCaret($('#textarea')[0],'');

});

var message = {

setCaret :function (textObj) {

if (textObj.createTextRange) {

textObj.caretPos = document.selection.createRange().duplicate();

}

}

insertAtCaret :function (textObj, textFeildValue) {

if (document.all) {

if (textObj.createTextRange && textObj.caretPos) {

var caretPos = textObj.caretPos;

caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? textFeildValue + ' ' : textFeildValue;

} else {

textObj.value = textFeildValue;

}

} else {

if (textObj.setSelectionRange) {

var rangeStart = textObj.selectionStart;

var rangeEnd = textObj.selectionEnd;

var tempStr1 = textObj.value.substring(0, rangeStart);

var tempStr2 = textObj.value.substring(rangeEnd);

textObj.value = tempStr1 + textFeildValue + tempStr2;

} else {

alert("This version of Mozilla based browser does not support setSelectionRange");

}

}

}

OK,直接复制粘贴试试吧 =0=

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值