Я получил этот сценарий где-то еще, но я не могу найти закладку для него.
Это добавляет метод к JQuery, который позволит вам сделать следующее:
$("#selectedTextarea").insertAtCaret(myText);
Edit: рабочая скрипку here
И код:
jQuery.fn.extend({
insertAtCaret: function(myValue)
{
return this.each(function()
{
if(document.selection)
{
//For browsers like Internet Explorer
this.focus();
sel = document.selection.createRange();
sel.text = myValue;
this.focus();
}
else if(this.selectionStart || this.selectionStart == '0')
{
//For browsers like Firefox and Webkit based
var startPos = this.selectionStart;
var endPos = this.selectionEnd;
var scrollTop = this.scrollTop;
this.value = this.value.substring(0, startPos) + myValue + this.value.substring(endPos, this.value.length);
this.focus();
this.selectionStart = startPos + myValue.length;
this.selectionEnd = startPos + myValue.length;
this.scrollTop = scrollTop;
}
else
{
this.value += myValue;
this.focus();
}
})
}
});
:) Несколько текстовых областей, хорошо, но вы можете иметь только одну позицию каретки, а не несколько. –
Почему мой вопрос стал проголосовать? –