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

在偶尔一个项目中, 客户要求可以复制一部分金额(三位一撇)到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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值