2014-04-02 86 views
1

我是Extjs的新手。我有領域的形式。我需要爲特定領域設定焦點。這是我正在使用的代碼。無法爲Extjs textfield設置焦點

var priceTFLme = { 
    xtype: 'numberfield', 
    id:'priceLme', 
    fieldLabel: 'Price', 
    name: 'price', 
    value: bidOffer, 
    minValue: 0, 
    maxValue: 100, 
    allowDecimals: true, 
    decimalPrecision: 3, 
    step: 0.005, 
    vtype: 'natural' 
}; 

var quantityTFLme = { 
    xtype: 'textfield', 
    id: 'quantityLme', 
    fieldLabel: 'Quantity', 
    value: '', 
    editable: true, 
    hasFocus: true, 
    vtype: 'natural', 
    listeners: { 
     afterrender: function(field) { 
      field.focus(false, 1000); 
     } 
    } 
}; 

var formLME = new Ext.FormPanel({ 
    labelWidth: 85, 
    frame:true, 
    id:'lmeHeaders', 
    bodyStyle:'padding:10px 10px 0', 
    defaults: {width: 225}, 
    defaultType: 'textfield', 

    items: [quantityTFLme, priceTFLme ], 

    buttons: [{ 
     id:'buyIdLME', 
     handler: function() { 

     } 
    }, { 
     id:'sellIdLME', 
     handler: function() { 

     } 
    }] 
}); 

var winLme = Ext.widget('window', { 
    closeAction: 'close', 
    layout: 'fit', 
    resizable: false, 
    constrain: true, 
    modal: true, 
    items: formLME 
}); 

function requestForLMEPrice() { 
    if (!winLme.rendered) { 
     winLme.render(Ext.getBody()); 
    } 
    winLme.center(); 
    winLme.show(); 
} 

我有專注的領域有Quantity。但我無法專注。

任何人都可以幫忙嗎?

也是,我一直在使用Ext.getCmp('quantityTFLme').focus(false, 200);

回答

7

觸發焦點之前嘗試defer試過,

示例代碼:

afterrender: function(field) { 
    Ext.defer(function() { 
     field.focus(true, 100); 
    }, 1); 
} 
+1

感謝。這對我來說很有用。 – MadTech