在项目需求中,需要把金额数据
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
分享到:
相关推荐
6. tbseparator - xtype: 'tbseparator', 描述: 工具栏分隔符 7. tbtext - xtype: 'tbtext', 描述: 工具栏文本项 8. tbsplit - xtype: 'tbsplit', 描述: 工具栏分隔按钮 9. tb spacer - xtype: 'tb spacer', 描述: ...
labelSeparator :':', //分隔符 labelWidth : 50, //标签宽度 width : 150, //字段宽度 allowBlank : false, //是否允许为空 blankText : '不允许为空', labelAlign : 'left', //标签对齐方式 msgTarget...
7. **菜单类和工具栏**:包含菜单(Menu)、菜单项(Item)、适配器(Adapter)、工具栏(Toolbar)、分隔符(Separator)、文本项(TextItem)、填充(Fill)、按钮(Button)和分割按钮(SplitButton),为应用提供导航和操作界面。...
- **`tbseparator` (Ext.Toolbar.Separator)**: 工具栏分隔符组件,用于分隔工具栏上的不同元素。 - **`tbspacer` (Ext.Toolbar.Spacer)**: 工具栏空白组件,用于在工具栏上留出空白区域。 - **`tbsplit` (Ext....
6. **`tbseparator`** - `Ext.Toolbar.Separator`,工具栏分隔符,用于分割工具栏上的不同部分。 7. **`tbspacer`** - `Ext.Toolbar.Spacer`,工具栏空白,用于创建固定的空白区域。 8. **`tbsplit`** - `Ext....
6. **`tbseparator`:** 工具栏分隔符组件,用于在工具栏中插入分隔线,通过`Ext.Toolbar.Separator`类实现。 7. **`tbspacer`:** 工具栏空白组件,用于在工具栏中插入空白区域,通过`Ext.Toolbar.Spacer`类实现。 ...
ExtJS 是一个强大的JavaScript应用程序框架,它提供了丰富的用户界面组件,用于构建富客户端应用。`xtype` 是ExtJS中的一个重要概念,它是组件类的简写形式,用于在配置对象中声明组件类型,使得代码更加简洁。理解...
- `tbseparator`:`Ext.Toolbar.Separator`,在工具栏上创建分隔符。 - `tbspacer`:`Ext.Toolbar.Spacer`,工具栏的空格。 - `tbsplit`:`Ext.Toolbar.SplitButton`,工具栏的分隔按钮。 - `tbtext`:`Ext....
- **Separator**: `Ext.Toolbar.Separator`,工具栏分隔符。 - **Spacer**: `Ext.Toolbar.Spacer`,工具栏空白区域。 - **SplitButton**: `Ext.Toolbar.SplitButton`,工具栏上的分裂按钮。 - **TextItem**: `...
- **描述**: 工具栏上的分隔符。 7. **`tbspacer`:** - **`xtype`**: `tbspacer` - **`Class`**: `Ext.Toolbar.Spacer` - **描述**: 工具栏上的空白填充。 8. **`tbsplit`:** - **`xtype`**: `tbsplit` - ...
- **描述**: 工具栏分隔符,用于在工具栏项之间添加视觉分隔。 - **用途**: 分组工具栏上的按钮或其他项目。 **Ext.Toolbar.Spacer** - **描述**: 工具栏空白,用于创建工具栏上的空白区域。 - **用途**: 保持工具...
2.9 为本书示例准备一个模板 / 60 2.10 本章小结 / 61 第3章 调试工具及技巧 / 62 3.1 使用firebug进行调试 / 62 3.2 在ie中调试 / 76 3.2.1 使用debugbar和companion.js调试 / 76 3.2.2 使用ietester测试 / ...