2

将小数强制精确到一定精度似乎很容易,它们有很多方法。我尝试将所有方法都用作:

第一种方式:使用配置

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

替代方法:通过覆盖或扩展,如此处所示

或者使用正则表达式

所有这些都适用于模糊或其他一些事件或功能。它们是在小数点后两位停止输入的一种方式。在文本字段中,我们可以使用RegExmaskRe配置。但在数字字段中,它们是否类似于 maskRe,因此用户不能输入超过两位小数。任何帮助表示赞赏。谢谢。

4

1 回答 1

2

确实在maskRe数字字段内部使用,因此您必须模仿它的行为。也就是说,监听该keypress字段的事件,如果输入适合您,则停止该事件。

例如,使用正则表达式强制执行两位小数精度:

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 回答