在项目需求中,需要把金额数据
Ext.ux.NuberFiledFormat=Ext.extend(Ext.form.NumberField, {
baseChars: "0123456789,",
setValue: function(v){
v = typeof v == 'number' ? v : String(v).replace(this.decimalSeparator, ".").replace(/,/g, "");
v = isNaN(v) ? '' : rendererZhMoney(v);
//Ext.util.Format.number(this.fixPrecision(String(v)), "0,000,000.00");此为ext 4.0
this.setRawValue(v);
return Ext.form.NumberField.superclass.setValue.call(this, v);
},
/* getValue:function(){
//alert((String(Ext.form.NumberField.superclass.getValue.call(this)).replace(",","")));
return (String(Ext.form.NumberField.superclass.getValue.call(this)).replace(",",""));
},
*/
fixPrecision: function(value){
var nan = isNaN(value);
if (!this.allowDecimals || this.decimalPrecision == -1 || nan || !value) {
return nan ? '' : value;
}
return parseFloat(value).toFixed(this.decimalPrecision);
},
validateValue: function(value){
if (!Ext.form.NumberField.superclass.validateValue.call(this, value)) {
return false;
}
if (value.length < 1) { // if it's blank and textfield didn't flag it then it's valid
return true;
}
value = String(value).replace(this.decimalSeparator, ".").replace(/,/g, "");
if (isNaN(value)) {
this.markInvalid(String.format(this.nanText, value));
return false;
}
var num = this.parseValue(value);
if (num < this.minValue) {
this.markInvalid(String.format(this.minText, this.minValue));
return false;
}
if (num > this.maxValue) {
this.markInvalid(String.format(this.maxText, this.maxValue));
return false;
}
return true;
},
parseValue: function(value){
value = parseFloat(String(value).replace(this.decimalSeparator, ".").replace(/,/g, ""));
return isNaN(value) ? '' : value;
}
});
//注册扩展后的数字控件
Ext.reg('numberFieldFormat', Ext.ux.NuberFiledFormat);
注意:
上面代码中rendererZhMoney(v);js方法请参照
js 金额格式化
[url]http://913.iteye.com/blog/1638736
[/url]
-------------------------------------------------------------------------
使用示例
//在控件中指定xtype即可
xtype:"numberFieldFormat"
显示效果
好了,显示问题解决了,但在提交数据时,会把格式化后的数据提交,包含千分符,
关于处理提交问题,下一篇再讨论
- 大小: 1.4 KB
分享到:
相关推荐
Ext.ux.form.field.Currency 具有货币符号的Ext JS 4.x,5.x,6.x货币字段,国际支持的千位分隔符 在线演示 如果您发现并修复了任何错误或想要添加更多功能,请随时进行派生并提出拉取请求。 感谢Greivin Britton
UnitText.js ======================= 代码如下: // 输入框textfield后面放字unitText定义: Ext.override(Ext.form.TextField, { unitText : ”, onRender : function(ct, position) { Ext.form.TextField....
包含各种类型的extjs小图标,Extjs4小图标
扩展ExtJs的HtmlEditor编辑器插入图片.pdf
EXTJS3.0扩展例子集合...内含源代码...
用My97扩展ExtJs日期时间插件 (EXT不支持时分秒,我们借助my97完成需求)
分享给爱好EXTJS的同胞们! EXTJS4.0文件夹下面包括 1.只有年月选择--dateYM.html (这个在EXTJS4.0和4.1下显示都是可以的) 2.扩展日期选择时分秒--dateTimeField4.0.html (这个只在EXTJS4.0下显示可以) ...
安装extjs插件Dreamweaver CS3就可以支持extjs的提示了
extjs扩展教程 extjs扩展教程extjs扩展教程
ExtJs DWR扩展 DWRProxy、DWRTreeLoader、DWRGridProxy,经过EXT3.0版本测试! 通过DWR向Ext提供数据!非常棒的扩展!
ExtJS 组件扩展 如何正确使用Extjs---扩展组件的两个层次
NULL 博文链接:https://apluck.iteye.com/blog/616773
Extjs表单VTYPE扩展,方便验证!
extjs多选 下拉框扩展
扩展Extjs4.2的htmleditor,添加 “上传图片”,”上传附件”等功能。
本文是extjs的扩展包,可以在页面中插入图片,把这个js文件放入相应的目录下,extjs就是引用这个类型,就可以插入图片
实现对Ext树进行分页的组件,扩展了TreeLaoder和PagingToobar
以前一直没找到extjs2.2的全包,这次在添加Myeclipse的插件时,我找了好久才找到。现在分享下,以免兄弟姐妹们到处去找:
EXTJS应用EXTJS应用EXTJS应用EXTJS应用EXTJS应用EXTJS应用