zoukankan      html  css  js  c++  java
  • JQuery在光标位置插入内容

     1 (function($) {
     2     $.fn.extend({
     3         insertAtCaret: function(myValue) {
     4             var $t = $(this)[0];
     5               //IE
     6             if (document.selection) {
     7                 this.focus();
     8                 sel = document.selection.createRange();
     9                 sel.text = myValue;
    10                 this.focus();
    11             } else
    12             //!IE
    13             if ($t.selectionStart || $t.selectionStart == "0") {
    14                 var startPos = $t.selectionStart;
    15                 var endPos = $t.selectionEnd;
    16                 var scrollTop = $t.scrollTop;
    17                 $t.value = $t.value.substring(0, startPos) + myValue + $t.value.substring(endPos, $t.value.length);
    18                 this.focus();
    19                 $t.selectionStart = startPos + myValue.length;
    20                 $t.selectionEnd = startPos + myValue.length;
    21                 $t.scrollTop = scrollTop;
    22             } else {
    23                 this.value += myValue;
    24                 this.focus();
    25             }
    26         }
    27     })
    28 })(jQuery);
    IE下可以通过document.selection.createRange();来实现,而Firefox(火狐)浏览器则需要首先获取光标位置,然后对value进行字符串截取处理。
    $(selector).insertAtCaret("value");  
  • 相关阅读:
    uniapp
    vue -element admin 修改request,headers添加参数
    uniapp
    css
    uniapp
    uniapp
    vue
    vue
    vue -element 修复select下拉框在移动端需要点击两次才能选中的问题
    vue
  • 原文地址:https://www.cnblogs.com/showersun/p/3794283.html
Copyright © 2011-2022 走看看