基于jQuery的输入框在光标位置插入内容, 并选中

复制代码 代码如下:

  //

  //使用方法

  //$(文本域选择器).insertContent("插入的内容");

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

  //

  //在光标位置插入内容, 并选中

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