query或者JavaScript实现在textarea光标处插入文本

1.Jquery函数实现:

$(function() {
    /*  在textarea处插入文本--Start */
    (function($) {
        $.fn.extend({
                    insertContent : function(myValue, t) {
                        var $t = $(this)[0];
                        if (document.selection) { // ie
                            this.focus();
                            var sel = document.selection.createRange();
                            sel.text = myValue;
                            this.focus();
                            sel.moveStart(‘character‘, -l);
                            var wee = sel.text.length;
                            if (arguments.length == 2) {
                                var l = $t.value.length;
                                sel.moveEnd("character", wee + t);
                                t <= 0 ? sel.moveStart("character", wee - 2 * t
                                        - myValue.length) : sel.moveStart(
                                        "character", wee - t - myValue.length);
                                sel.select();
                            }
                        } 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;
                            if (arguments.length == 2) {
                                $t.setSelectionRange(startPos - t,
                                        $t.selectionEnd + t);
                                this.focus();
                            }
                        } else {
                            this.value += myValue;
                            this.focus();
                        }
                    }
                })
    })(jQuery);
    /* 在textarea处插入文本--Ending */
});

调用方法:

$(文本域选择器).insertContent("插入的内容"); 
//$(文本域选择器).insertContent("插入的内容",数值); //根据数值选中插入文本内容两边的边界, 数值: 0是表示插入文字全部选择,-1表示插入文字两边各少选中一个字符。

function insertText(obj,str) {
    if (document.selection) {
        var sel = document.selection.createRange();
        sel.text = str;
    } else if (typeof obj.selectionStart === ‘number‘ && typeof obj.selectionEnd === ‘number‘) {
        var startPos = obj.selectionStart,
            endPos = obj.selectionEnd,
            cursorPos = startPos,
            tmpStr = obj.value;
        obj.value = tmpStr.substring(0, startPos) + str + tmpStr.substring(endPos, tmpStr.length);
        cursorPos += str.length;
        obj.selectionStart = obj.selectionEnd = cursorPos;
    } else {
        obj.value += str;
    }
}
function moveEnd(obj){
    obj.focus();
    var len = obj.value.length;
    if (document.selection) {
        var sel = obj.createTextRange();
        sel.moveStart(‘character‘,len);
        sel.collapse();
        sel.select();
    } else if (typeof obj.selectionStart == ‘number‘ && typeof obj.selectionEnd == ‘number‘) {
        obj.selectionStart = obj.selectionEnd = len;
    }
} 
时间: 2024-11-05 23:36:38

query或者JavaScript实现在textarea光标处插入文本的相关文章

Javascript实现在textarea中输入回车键不换行

今天在写一个小程序时,用到了在文本框中捕捉回车键的功能,我想肯定能够用Javascript实现,于是百度了以下,得到如下实现. HTML页面如下: <textarea class="form-control" name="message" id="message" style="display: inline-block;" onkeypress="onKeyPress(event)"><

JQuery扩展:TextArea在光标处插入文本

$.fn.extend({     insertAtCursor : function(myValue) {         var $t = $(this)[0];         if (document.selection) {             this.focus();             sel = document.selection.createRange();             sel.text = myValue;             this.focus

textarea光标处插入文字

(function($) { $.fn.extend({ //myField 对象元素 myValue 插入值 insertAtCursor: function(myField,myValue) { //IE下 if (document.selection) { myField.focus();//输入元素textara获取焦点 var fus = document.selection.createRange(); //获取光标位置 fus.text = myValue;//在光标位置插入值 m

使用JS在textarea在光标处插入内容

// 在光标处插入字符串 // myField 文本框对象 // myValue 要插入的值 function insertAtCursor(myField, myValue) { //IE support if (document.selection) { myField.focus(); sel = document.selection.createRange(); sel.text = myValue; sel.select(); } //MOZILLA/NETSCAPE support

EditText在光标处插入字符

写MarkDown编译器的快捷键时碰到的常见但又不太好想的问题 通用代码 //获取光标位置 private int getEditTextCursorIndex(EditText editText){ return editText.getSelectionStart(); } //向光标处插入文本 private void insertText(EditText editText,String string){ editText.getText().insert(getEditTextCurs

js实现文本框文本域光标处插入图片文本的插件(并且光标在插入内容的内容后显示)

js: /******************************************* * * 插入光标处的插件 * @authors Du xin li * @update    2015-10-25 **********************************************/ $.fn.extend({      insertContent : function(myValue, t) {          var that = $(this);        v

javascript 获取用户光标,插入文本

图1 如图1所示,点击[函数名称],将函数名称添加到表达式内容框中,点击参数名称,将参数名称index1作为方法的参数添加到表达式内容中的表达式中. 该功能实现主要是采用了javascript获取鼠标光标,在光标处插入方法名称和参数名称.javascript 代码如下. <script language="javascript" type="text/javascript"> /* @myField:要插入文本的HTML标签 @myValue:要插入文本

可编辑DIV (contenteditable=&quot;true&quot;) 在鼠标光标处插入图片或者文字

近期需开发一个DIV做的编辑器,插入表情图片可直接预览效果,仔细参考了下百度贴吧的过滤粘贴过来文件的THML代码,自己整理了下.写出来只是和大家分享下,我自己也不大懂,经过努力,幸好搞定. 蛋疼的事情出来了,当编辑框失去焦点时候,再插入图片时候总是插入在最前面(谷歌和火狐,IE没问题).还没搞定,,, <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/

JQ在光标处插入文字

内容转载自网络这是一个JQ的扩展方法.在teatarea获得焦点时,往光标处插入文字,扩展代码如下 (function($){ $.fn.extend({ "insert":function(value){ //默认参数 value=$.extend({ "text":"123" },value); var dthis = $(this)[0]; //将jQuery对象转换为DOM元素 //IE下 if(document.selection){