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

focusメソッドは、Ext.componentによって定義され、Ext.componentから継承されます。したがって、テキストフィールドで機能する場合は、数値フィールドでも機能するはずです。それは何か他のものかもしれません。を使用してもう少し遅らせようとするかもしれません

numberfield.focus(undefined, 20);

ところで:番号フィールドがExt JSフォーム内にある場合は、Ext.getCmpを使用するべきではないと思います。up可能であれば、メソッドを使用downして、イベントを発生させているコンポーネントから番号フィールドに取得します。

于 2013-01-10T08:28:41.920 に答える
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);
}

アラートは非同期であるため、アラート メッセージを閉じるとフィールドがフォーカスされ、自動的にフォーカスが失われます。

于 2013-01-13T14:49:52.117 に答える