抓取、設定文字游標位置

寫了一個自動 replace 非數字的功能,在Crhome中會發生 replace 完文字游標自動跑到最後面。
除了避免 event.which = 8,37,39,46 之外,用滑鼠指向某個位置,輸入完文字後,游標仍會至底。


//取得文字游標位置
    $.fn.getCursorPosition = function() {
        var el = $(this).get(0);
        var pos = 0;
        if('selectionStart' in el) {
            pos = el.selectionStart;
        } else if('selection' in document) {
            el.focus();
            var Sel = document.selection.createRange();
            var SelLength = document.selection.createRange().text.length;
            Sel.moveStart('character', -el.value.length);
            pos = Sel.text.length - SelLength;
        }
        return pos;
    }

//跳位置 or 選範圍文字
$.fn.selectRange = function(start, end) {
    if(!end) end = start;
    return this.each(function() {
        if (this.setSelectionRange) {
            this.focus();
            this.setSelectionRange(start, end);
        } else if (this.createTextRange) {
            var range = this.createTextRange();
            range.collapse(true);
            range.moveEnd('character', end);
            range.moveStart('character', start);
            range.select();
        }
    });
};
抓取、設定文字游標位置 抓取、設定文字游標位置 Reviewed by Wild on 10/16/2013 10:19:00 上午 Rating: 5

沒有留言:

沒有Google帳號也可發表意見唷!

技術提供:Blogger.