jQuery 输入框 在光标位置插入内容, 并选中
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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | // //使用方法 //$(文本域选择器).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); |