2013-07-29 96 views
2

單元格內容選擇對於數字文本框(內部處理爲Kendo NumericTextBox控件)成功工作,但由於某種原因,它不適用於純文本框列。附件爲的jsfiddle demo'ing問題:KendoUI Grid - 在單元格焦點上選擇文本

http://jsfiddle.net/latenightcoder/TrJVK/86

這是在網格設置這是重要的代碼:

edit: function (e) { 
     var input = e.container.find("input"); 
     input.focus(function (e) { 
      console.log('focus'); 
      setTimeout(function() { 
       input.select(); 
      }); 
     }); 
    } 

回答

6

原來在我甚至可以連接焦點事件處理程序之前焦點事件被解僱了。因此,這是最佳的解決方案,以支持網格行內的所有類型的字段:

 var input = e.container.find("input"); 
     setTimeout(function() { 
      input.select(); 
     }, 25); 

修改後的jsfiddle在這裏可以查看:http://jsfiddle.net/latenightcoder/TrJVK/90

+0

謝謝..爲我工作。 :) –

+0

@Joel D'Souza,謝謝。工作正常 –

0

你只是附加的焦點事件處理它,但你實際上並沒有讓它專注。問題應該是,爲什麼劍道號碼箱會這樣做? :-) 此外,setTimeout的第二個參數不是可選的(根據規格)。

請嘗試以下(http://jsfiddle.net/TrJVK/87/

edit: function (e) { 
     var input = e.container.find("input"); 
     input.focus(function (e) { 
      // var input = $(this); 
      console.log('focus'); 
      input.select(); 
     }); 
     input.focus(); 
    }, 

還要說明一點:

對於未來的jQuery的兼容性,它可能是最好做甚至以下:

edit: function (e) { 
     var input = e.container.find("input"); 
     input.on('focus', function (e) { 
      // var input = $(this); 
      console.log('focus'); 
      input.select(); 
     }); 
     input.trigger('focus'); 
    }, 
+0

焦點事件在內部發射,這就是爲什麼它的工作原理爲劍道數字文本框。我認爲問題在於,在常規文本框中,當焦點事件處理程序正在連接時,焦點事件已被觸發。 –

相關問題