1

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

我开始怀疑在这种情况下是否甚至可以允许用户在文本输入框中输入内容。

感谢您提供的任何帮助!

代码在这里: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/

  • 请注意如何自由地选中/取消选中复选框,但不能编辑文本框。

如何将焦点放在(和编辑)文本框?

4

2 回答 2

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/

于 2014-11-04T18:21:31.177 回答
0

根据Telerik支持管理员的说法,目前不支持此功能。如果/当我听说问题已得到解决,我会更新这个答案。

于 2013-08-09T12:35:33.197 回答