JqueryまたはJavaScriptインプリメンテーションtextareaカーソルにテキストを挿入
2831 ワード
1.Jquery関数実装:
$(テキストフィールドセレクタ).InsertContent(「挿入された内容」);//$(テキストフィールドセレクタ).InsertContent(「挿入された内容」、数値);//数値によってテキストの内容の両側を挿入する境界を選択して、数値:0は挿入文字のすべての選択を表して、-1は挿入文字の両側がそれぞれ1文字少ないことを表します.
2.JavaScript実装:
$(function() {
/* textarea --Start */
(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);
/* textarea --Ending */
});
呼び出し方法:$(テキストフィールドセレクタ).InsertContent(「挿入された内容」);//$(テキストフィールドセレクタ).InsertContent(「挿入された内容」、数値);//数値によってテキストの内容の両側を挿入する境界を選択して、数値:0は挿入文字のすべての選択を表して、-1は挿入文字の両側がそれぞれ1文字少ないことを表します.
2.JavaScript実装:
function insertText(obj,str) {
if (document.selection) {
var sel = document.selection.createRange();
sel.text = str;
} else if (typeof obj.selectionStart === 'number' && typeof obj.selectionEnd === 'number') {
var startPos = obj.selectionStart,
endPos = obj.selectionEnd,
cursorPos = startPos,
tmpStr = obj.value;
obj.value = tmpStr.substring(0, startPos) + str + tmpStr.substring(endPos, tmpStr.length);
cursorPos += str.length;
obj.selectionStart = obj.selectionEnd = cursorPos;
} else {
obj.value += str;
}
}
function moveEnd(obj){
obj.focus();
var len = obj.value.length;
if (document.selection) {
var sel = obj.createTextRange();
sel.moveStart('character',len);
sel.collapse();
sel.select();
} else if (typeof obj.selectionStart == 'number' && typeof obj.selectionEnd == 'number') {
obj.selectionStart = obj.selectionEnd = len;
}
}