Kendo ui 在剑道网格中的弹出式编辑表单的第一个字段上设置焦点
我有一个剑道网格在弹出编辑模式。弹出表单的第一个字段是自动完成小部件。每当弹出窗体弹出时,我都要关注它。我试着用不同的方式来做Kendo ui 在剑道网格中的弹出式编辑表单的第一个字段上设置焦点,kendo-ui,Kendo Ui,我有一个剑道网格在弹出编辑模式。弹出表单的第一个字段是自动完成小部件。每当弹出窗体弹出时,我都要关注它。我试着用不同的方式来做 $("#grid").kendoGrid({ editor: function(container, options) { $('<input id="item_code_focus" name="' + options.field + '"/>') .appendTo(c
$("#grid").kendoGrid({
editor:
function(container, options) {
$('<input id="item_code_focus" name="' + options.field + '"/>')
.appendTo(container)
.kendoAutoComplete({
-----
-----
}).focus()
}
});
$(“#网格”).kendoGrid({
编辑:
函数(容器、选项){
$('')
.appendTo(容器)
.kendoAutoComplete({
-----
-----
}).focus()
}
});
但它不起作用。请帮助我?..您可以尝试使用网格的事件
edit:function(e){
e.container.data('kendoWindow').bind('activate',function(e){
$('#autocomplete').focus();
})
},
编辑:实际上你应该使用窗口激活事件来调用焦点。这是@OnaBai在使用编辑时调用focus不会使输入失去焦点-实际上是动画导致了这种行为。我认为,如果在弹出窗口仍处于打开状态时设置
focus
,则会失去焦点。你试过了吗?我认为您需要设置超时,然后设置焦点。类似于setTimeout(function(){$(“#item_code_focus”,ev.container).focus();},1000)事实上你可以,你做到了!尝试相同的示例,但单击右上角(“auto run JS”右侧的小箭头),以“live preview”模式打开它。似乎JSBin在后台做了些什么:-好的,谢谢你指出这一点。实际上,调用焦点的正确方法是使用窗口的激活事件。我已经更新了上面的帖子。我同意解决方案是使用弹出窗口上的激活
事件,这不应该是显示的代码,而不是对JSBin的引用吗?我正要编辑你的答案,但我更希望你这样做,因为这是你的答案。实际上,考虑到这个解决方案,从实时系统中我看到了一个问题:窗口是在开始执行edit
处理程序之前创建的,但在edit
开始执行之前,我们不会绑定activate
。从理论上讲,如果出于某种原因,在进入bind
之前,activate结束打开,我们可能会错过它。因为动画非常慢,所以不应该发生,但是经验告诉我们,如果某些事情可能出错,那么就会出错!无论如何+1