Get/set cursor position in input.
{
/**
* Возвращает позицию курсора в поле ввода
* @return {Number}
*/
getCursorPos : function() {
var input = this.elem('input')[0],
r, re, rc,
pos;
if (input.selectionStart) {
pos = input.selectionStart;
} else if (document.selection) {
input.focus();
r = document.selection.createRange();
if (r === null || typeof r === 'undefined') {
pos = 0;
} else {
re = input.createTextRange();
rc = re.duplicate();
re.moveToBookmark(r.getBookmark());
rc.setEndPoint('EndToStart', re);
pos = rc.text.length;
}
} else {
pos = 0;
}
return pos;
},
/**
* Выставляет курсор в поле ввода в нужное положение
* @param {Number} pos
*/
setCursorPos : function(pos) {
var input = this.elem('input')[0],
re;
if (input.createTextRange) {
re = input.createTextRange();
re.collapse(true);
re.moveEnd('character', pos);
re.moveStart('character', pos);
re.select();
} else if (input.setSelectionRange) {
input.setSelectionRange(pos, pos);
}
}
}