2

小数をある程度の精度に強制するのは非常に簡単なようで、多くの方法があります。すべてを次のように使用してみました。

第1の方法:構成を使用する

            xtype: 'numberfield',
            fieldLabel: 'Balance',
            name: 'balancefield',    
            decimalPrecision:2

代替:ここに示すようにオーバーライドまたは拡張することにより

または正規表現を使用して

これらはすべて、ぼかしまたはその他のイベントまたは関数で機能します。小数点以下 2 桁の後に入力を停止する方法です。テキストフィールドではRegExとmaskRe設定を使用できますが、数値フィールドでは maskRe のようなものなので、ユーザーは 2 つ以上の小数点以下を入力できません。どんな助けでも大歓迎です.Thanks.

4

1 に答える 1

2

maskRe実際に数値フィールドによって内部的に使用されるため、その動作を模倣する必要があります。つまりkeypress、フィールドのイベントをリッスンし、入力が適切な場合はイベントを停止します。

正規表現を使用して 2 桁の 10 進数精度を強制する例:

Ext.widget('numberfield', {
    renderTo: Ext.getBody()
    ,enableKeyEvents: true
    ,listeners: {
        keypress: function(field, e) {
            var v = field.getValue();
            if (!Ext.isEmpty(v)) {
                if (/\.\d{2,}/.test(v)) {
                    e.stopEvent();
                }
            }
        }
    }
});
于 2013-06-04T07:37:52.667 に答える