Javascript 在刚创建的窗口中设置文本输入的焦点
我有一个小窗口:Javascript 在刚创建的窗口中设置文本输入的焦点,javascript,extjs,extjs4,extjs4.1,Javascript,Extjs,Extjs4,Extjs4.1,我有一个小窗口: this.window = Ext.widget('window', { title: 'Find', closeAction: 'hide', width: 300, layout: 'fit', items: form }); 有着琐碎的形式 var form = Ext.widget('form', { layout: {
this.window = Ext.widget('window', {
title: 'Find',
closeAction: 'hide',
width: 300,
layout: 'fit',
items: form
});
有着琐碎的形式
var form = Ext.widget('form', {
layout: {
type: 'vbox',
align: 'stretch'
},
border: false,
bodyPadding: 10,
items: [
this.findInput,
]
});
其中只有一项
this.findInput = Ext.widget('textfield', {
name: 'find'
});
问题是:如何在显示窗口后立即设置焦点?我尝试在几乎每个窗口事件处理程序中调用.focus()
this.findInput的方法,但没有成功
似乎在DOM完全创建所有元素之前,甚至会同步调用afterrender
我错过了什么?我应该绑定到什么事件才能呈现所有元素并能够接受焦点
PS:如果我在10毫秒这样的小间隔后调用相同的
.focus()
,我会使它聚焦,但这不是一个解决方案签出activeItem
属性-
或者您也可以使用
defaultFocus
:不幸的是,它不能与vbox
布局一起使用。至少在将activeItem:0
添加到窗体和窗口之后-没有任何更改。在extjs源代码中,我只在card
layoutTry中看到这一个:是的,defaultFocus
是我要找的。也请把它作为一个答案