Extjs处理客户复制三位一撇到numberfield里面

来源:互联网 发布:mac打开文件夹很慢 编辑:程序博客网 时间:2024/05/01 00:08
     在偶尔一个项目中, 客户要求可以复制一部分金额(三位一撇)到Ext.form.NumberField里面去,而且他们要求保证数据不变,但是对于原生态的NumberField, 当你鼠标移开时, 会自动处理blur事件,这样只能保证娶到第一个逗号前的数据, 客户就感觉很奇怪, 我复制的明明不是这个数据, 如:复制过来数据是: 100,100,100.00, 而鼠标移开后变为100了

Ext.ns('Ext.ux.form');Ext.ux.form.MoneyField = Ext.extend(Ext.form.NumberField, {initComponent : function(){Ext.ux.form.MoneyField.superclass.initComponent.call(this);//处理客户复制三位一撇数字到MoneyField, 让该控制自动处理','this.on('invalid', this.inputIsvalid);},/** * @params t: Ext.form.Field * @params msg: erro msg */inputIsvalid: function(t, msg) {if(!Ext.isEmpty(t.getValue())) {var val = msg.substring(0, msg.indexOf(" "));if(val.indexOf(',') > -1) {t.setValue(val.replace(',',''));}}},allowNegative : false,//是否可以输入负数allowDecimals : true,//是否可以输入小数点decimalPrecision : 2,//小数点位数minValue : 0,maxValue : 99999999999999.99,baseChars : "0123456789,",autoStripChars: true});Ext.reg('moneyField', Ext.ux.form.MoneyField);

baseChars 允许输入的值,这个字段会在Ext.form.NumberField的私有方法initEvents中处理。


这样处理后可以保证复制来的100,100,100.00,
而鼠标移开后会变为100100100.保证了数据不至于丢失
0 0
原创粉丝点击