我的表单中有一个名为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);
答案 0 :(得分:4)
焦点方法由Ext.component定义并继承自Ext.component。因此,如果它适用于文本字段,它也应该适用于数字字段。它可能是别的东西。您可以尝试使用
延迟一点numberfield.focus(undefined, 20);
顺便说一句:如果您的数字字段在Ext JS表单中,我认为您不应该使用Ext.getCmp。如果可以,请使用up
和down
方法从触发事件的组件到您的号码字段。
答案 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);
}
警报是异步的,因此该字段会获得焦点,并在您关闭警报消息时自动丢失它。