ExtJS教程----自定义金钱格式的文本框

添加如下内容

Ext.define('Ext.ux.NumberFieldFormat', {
    extend: 'Ext.form.NumberField', //'Ext.form.NumberField'
    alias: 'widget.numberFieldFormat',
    hideTrigger: true,
    baseChars: '0123456789,',
    setValue: function (v) {
        v = typeof v == 'number' ? v : String(v).replace(this.decimalSeparator, ".").replace(/,/g, "");
        //v = isNaN(v) ? '' : rendererZhMoney(v);
        v = Ext.util.Format.number(this.fixPrecision(String(v)), "0,000,000"); //此为ext 4.0
        this.setRawValue(v);
        //return Ext.form.NumberField.superclass.setValue.call(this, v);
    },
    getValue: function () {
        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) {
        value = String(value).replace(this.decimalSeparator, ".").replace(/,/g, "");

        if (!Ext.form.NumberField.superclass.validateValue.call(this, value)) {
            return false;
        }
        if (value.length < 1) {
            return true;
        }
        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;
    }
});
2.引用
   xtype: 'numberFieldFormat',
   fieldLabel: '收入',
   padding: '5 10 5 0',
   labelWidth: 160,
   name: 'Income',
效果如下:

1.只能输入数字,汉字和字母都输不了

2.取值的时候只能用: form.getForm().findField("Income").value,不可以用getValue()方法


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值