0

我的表单中有一个名为 cashPay 的数字字段,另一个字段名称是 totalPayable。现在,如果 cashPay 小于 totalPayable 我需要提醒一条消息并关注 cashPay 字段。但我无法做到。focus 方法适用于其他形式的文本字段,但在数字字段上它不适用于我。谁能帮我解决这个问题。下面是我的代码:

在我的视图页面中>>>

{
            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);
4

2 回答 2

4

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

numberfield.focus(undefined, 20);

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

于 2013-01-10T08:28:41.920 回答
1

使用“显示”和回调:

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);
}

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

于 2013-01-13T14:49:52.117 回答