在Kendo ComboBox中,如何使输入元素获得焦点?

时间:2013-08-06 15:41:22

标签: jquery focus kendo-ui kendo-combobox

当点击相应的重命名按钮时,我正在尝试将焦点放在下拉列表中项目的input元素上。我已经尝试了jQuery .focus() function,但组合框只是关闭而没有实际将焦点放在文本输入框中。

我开始怀疑在这种情况下是否允许用户输入文本输入框。

感谢您提供的任何帮助!

此处代码: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/

  • 请注意您可以自由选中/取消选中复选框,但无法编辑文本 框。

如何关注(和编辑)文本框?

2 个答案:

答案 0 :(得分: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/

答案 1 :(得分:0)

根据Telerik支持管理员,目前不支持此功能。如果/当我听说问题已得到修复时,我会更新此答案。