- //
- // 使用方法
- //$(文本域选择器).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);
来源: https://www.2cto.com/kf/201806/756707.html