2011-09-24 30 views
1

我似乎无法能够集中字段的形式ExtJS的4extjs4 - 如何关注文本字段?

的文档列出了文本字段(继承自Component)聚焦功能,但它不能在对焦方面做任何事到输入字段。

下面是从文档

Ext.create('Ext.form.Panel', { 
    title: 'Contact Info', 
    width: 300, 
    bodyPadding: 10, 
    renderTo: Ext.getBody(),   
    items: [{ 
     xtype: 'textfield', 
     name: 'name', 
     fieldLabel: 'Name', 
     allowBlank: false 
    }, { 
     xtype: 'textfield', 
     id:'email', 
     name: 'email', 
     fieldLabel: 'Email Address', 
     vtype: 'email' 
    }] 
}); 

一个示例代码。如果我叫什么Ext.getCmp('email').focus()可见发生。

在extjs 4中关注字段的正确方法是什么?

+0

在FF 6.0.2 mac上可能出现[Set on focus on Extjs textfield](https://stackoverflow.com/questions/6591371/set-focus-on-extjs-textfield) – Vadzim

回答

2

你的代码没有任何问题。我为它制作了一个jsfiddle,它工作正常。你是在包装代码和Ext.onReady()?你还使用什么浏览器?

+0

。绝对包裹在onReady处理程序..你的jsfiddle为我工作..必须是我的代码中的其他地方的东西,必须窃取焦点..我想我可以尝试修剪其余的代码,以再次开始工作。至少我知道重点_现在应该工作,谢谢 – Ben

5

有时候,一个简单的解决方法是稍微延迟焦点调用,以防与其他代码或者UI线程发生定时问题,从而导致焦点发生。具有延迟各地

Ext.getCmp('email').focus(false, 20); 
+0

我认为焦点方法中的延迟选项可以让你做到这一点,但似乎并非如此。谢谢你的提示。 +1 – Mike

2

试试这个。注意父母上的focusOnToFront属性。

+2

为了提高您的帖子的质量,请包括您的答案为何/如何解决问题。 –

+0

[此答案提供了解释](http://stackoverflow.com/a/6591823/1062992) – Geronimo

0

而不是工作,找什么越来越注重代替:例如: -

Ext.defer(function(){ 
    Ext.getCmp('email').focus(); 
}, 0); 
相关问题