Extjs 4专注于数字领域

时间:2013-01-10 04:43:39

标签: extjs extjs4 extjs-mvc

我的表单中有一个名为cashPay的数字字段,另一个字段名称为totalPayable。现在,如果cashPay小于totalPayable,我需要提醒消息并关注cashPay字段。但我无法做到这一点。焦点方法适用于其他形式的文本字段,但在数字字段上,它对我不起作用。任何人都可以帮我这个。以下是我的代码:

在我的视图页面>>>

{
            xtype: 'numberfield',
            name: 'cashPay',
            id: 'cashPay',
            keyNavEnabled: false,
            mouseWheelEnabled: false,
            enableKeyEvents: true,
            allowBlank: false,
            hideTrigger: true,
            fieldLabel: 'Cash Pay',
            action: 'cashCalculation'
        }

在我的控制器中>>>

Ext.Msg.alert("Warning !","Sorry Cash Pay is less than this month's installment. Please pay the right amount")
        Ext.getCmp('cashPay').focus(false, 1);

2 个答案:

答案 0 :(得分:4)

焦点方法由Ext.component定义并继承自Ext.component。因此,如果它适用于文本字段,它也应该适用于数字字段。它可能是别的东西。您可以尝试使用

延迟一点
numberfield.focus(undefined, 20);

顺便说一句:如果您的数字字段在Ext JS表单中,我认为您不应该使用Ext.getCmp。如果可以,请使用updown方法从触发事件的组件到您的号码字段。

答案 1 :(得分:1)

使用'show'和回调:

Ext.Msg.show({
    title: 'Warning !',
    msg: "Sorry Cash Pay is less than this month's installment. Please pay the right amount",
    width: 300,
    buttons: Ext.Msg.OK,
    closable: false,
    fn: justAnotherFunc
});

justAnotherFunc: function() {
   Ext.getCmp('cashPay').focus(false, 1);
}

警报是异步的,因此该字段会获得焦点,并在您关闭警报消息时自动丢失它。