[ExtJs] 金额控件

在制作业务时,需要填充相关费用,可以利用Ext.util.format去将numberfield控件渲染成金额的格式。具体效果如下:

实现方法: 

Ext.define('Money', {
    extend: 'Ext.field.Number',
    xtype: 'moneyfield',
   
     onFocusLeave: function(event) {
       var me = this;
        me.callParent(arguments);
        me.setInputValue(Ext.util.Format.number(me.getValue(), '0,000.00'));//失焦时渲染格式
    },
     onFocusEnter: function(event) {
        var me = this;
        me.callParent(arguments);
         me.setInputValue(me.getValue());//变回可输入的格式
    },
   
});

改进了一下:

通过有无聚焦的判断,来控制显示为数值,还是金额格式的字符

Ext.define('Money', {
    extend: 'Ext.field.Number',
    xtype: 'moneyfield',
   
    onFocusEnter: function(event) {
        var me = this;
        me.callParent(arguments);
        me.setInputValue(me.getValue());
    }, 
    applyInputValue: function(value) {
        var me = this;
        value = me.callParent(arguments);
        value = this.hasFocus ? value : Ext.util.Format.Money(value);//判断有无聚焦来显示格式
        return value;
    },
});

 

你可能感兴趣的:(ExtJS,金额格式,numberfield,extjs)