2011年5月24日 星期二

jQuery Plugin insertContent-在文本框游標位置插入內容並選中

在輸入框中插入一些符號或是元件的plugin.
值得收藏.


使用方式:
$(文本域選擇器).insertContent("插入的內容");
$(文本域選擇器).insertContent("插入的內容",數值);
//根據數值選中插入文本內容兩邊的邊界

來源網址
Demo:http://www.css88.com/demo/insertContent/

/**
* Created by 愚人碼頭 .
* User: 愚人碼頭
* Date: 11-5-19
* Time: 上午10:24
* 更多查看http://www.css88.com/archives/3627
*/
//在光標位置插入內容
(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);

【下列文章您可能也有興趣】

沒有留言: