2013-08-06 26 views
1

我試圖在單擊相應的重命名按鈕時將焦點放在下拉列表中的項目的輸入元素。我試過了jQuery .focus() function,但是組合框只是簡單地關閉而沒有真正將注意力集中到文本輸入框。在Kendo組合框中,如何使輸入元素增益聚焦?

我開始懷疑是否有可能允許用戶在此場景中輸入文本輸入框。

我很感激您能提供的任何幫助!

代碼在這裏:http://jsfiddle.net/MattDietrich/DfxBD/

$('.licenseHoverButton.rename').on('click', function(e) { 
    e.stopPropagation(); // prevents combobox from closing 
    var input_elem = $(this).siblings('.licenseName'); 
    alert('Rename: ' + input_elem.val()); 

    /* 
    Make input_elem have focus so that the user can type a new name. 
    The combobox must remain open. 

    ie. input_elem.focus();  
    */ 
}); 

編輯:澄清實例

下面是由一個複選框對比演示我的問題小提琴:http://jsfiddle.net/MattDietrich/cWLQy/

  • 注意你怎麼能自由選中/取消選中複選框,但不能編輯文本框 。

我該如何將注意力集中到(並編輯)文本框?

回答

0

根據支持admin的Telerik,目前不支持此功能。如果/當我聽說問題已解決,我會更新此答案。

1

此行爲當前不受支持,但根據我使用Telerik控件的經驗,有幾十件事不受支持,但非常有必要。通常想要的行爲可以通過各種技巧和黑客來實現,而這種情況並非例外。

我寫了常見的修復,使聚焦的任何元素中:

var _ignoreClose = false; 
var funcClose = combobox.close; 
combobox.close = function(){ 
    if (_ignoreClose) return; 
    funcClose.call(combobox); 
}; 
combobox.input.focusout(function(){ 
    _ignoreClose = true; 
    setTimeout(function(){ 
     _ignoreClose = false; 
    }); 
}); 
// set our handler as most priority 
var evt = $._data(combobox.input[0]).events['focusout']; 
evt.splice(evt.delegateCount, 0, evt.pop()); 

另外,如果你想點擊中的元素:

combobox.list.off('mousedown'); 

更新小提琴:http://jsfiddle.net/8zuygey4/1/

相關問題