随笔 - 419  文章 - 3  评论 - 331  阅读 - 120万

JQ 获取 input 当前光标的位置并插入文字

今天遇到一个需求,当用户在输入框中输入文本的时候,点击一个按钮,获取当前输入框中光标的位置,并在当前位置中插入对应的文字或字符。

简单整理了一下代码:

<input id="title" name="title" type="text" value=""  />
<button id="button">按钮</button>

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(); 
                } 
            } 
        }) 

        $('#button').on('click', function() {
          $("#title").insertAtCaret("ABC"); 
        })

      })
复制代码

测试可以实现该功能。

posted on   JoeYoung  阅读(439)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· [翻译] 为什么 Tracebit 用 C# 开发
· 腾讯ima接入deepseek-r1,借用别人脑子用用成真了~
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· DeepSeek崛起:程序员“饭碗”被抢,还是职业进化新起点?
· RFID实践——.NET IoT程序读取高频RFID卡/标签
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

点击右上角即可分享
微信分享提示