extjs4 - как сосредоточиться на текстовом поле? - PullRequest
2 голосов
/ 24 сентября 2011

Кажется, я не могу сфокусировать поле в форме в extjs 4.

В документе указана функция фокуса для текстового поля (унаследованного от компонента), но он ничего не делает в плане фокусировки на поле ввода.

Вот пример кода из документов

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?

Ответы [ 4 ]

5 голосов
/ 24 сентября 2011

Иногда простой обходной путь состоит в том, чтобы немного отложить вызов фокуса в случае, если это проблема синхронизации с другим кодом или даже с потоком пользовательского интерфейса, позволяющим сосредоточиться.Например:

Ext.defer(function(){
    Ext.getCmp('email').focus();
}, 0);
2 голосов
/ 03 августа 2012

Попробуйте это:

Ext.getCmp('email').focus(false, 20);
2 голосов
/ 24 сентября 2011

В вашем коде нет ничего плохого.Я сделал jsfiddle для него, и он отлично работает.Вы упаковываете код в Ext.onReady()?Также, какой браузер вы используете?

0 голосов
/ 18 февраля 2013

Вместо того, чтобы обойтись с задержкой, обратите внимание на то, что привлекает внимание. Обратите внимание на свойство focusOnToFront родительского объекта.

...