星期四, 3月 01, 2012

[jQuery plugin] 設定Cursor在Textbox的位置

最近在實作自動將Textbox前後空白字元清除的功能時,
遇到將tirm完的新字串重設回Textbox時,
Cursor的位置無法停留至文字的最後位置
網路上的範例也蠻多的,以下範例是改自參考的網址測試
IE 8,IE 9,Chrome,FF可正常運作。
有其他需求的話可參考jQuery的caret plugin




(function($) {
 
 $.fn.setCursorPos = function(pos){
     if(this.length == 0) 
      return this;
     
     return $(this).setCaret(pos, pos);
 };

 $.fn.setCaret = function(start, end) {
     if(this.length == 0) 
      return this;
     
     input = this[0];
     if (input.createTextRange) {
         //IE Only
      var range = input.createTextRange();
         range.collapse(true);
         range.moveEnd('character', end);
         range.moveStart('character', start);
         range.select();
         
     } else if (input.setSelectionRange) {
  
         input.focus();
         input.setSelectionRange(start, end);
     }

     return this;
 };

 $.fn.focusEnd = function(){
  var endPos = this.val().length;
     this.setCursorPos(endPos);
 };
 
})(jQuery);

Reference: jQuery Set Cursor Position in Text Area

沒有留言:

張貼留言

留個話吧:)

其他你感興趣的文章

Related Posts with Thumbnails