2013-07-29 5 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

Событие фокуса обожженная внутри, поэтому она работает для Текстовое поле Kendo. Я понял, что проблема заключается в том, что с обычным текстовым полем, в то время как обработчик фокус-событий подключается, фокус-событие уже запущено. –

Смежные вопросы