在numberfield extjs 3的最小/最大值中添加例外

时间:2019-03-15 13:33:50

标签: extjs extjs4 extjs3

这样的数字字段

xtype            : 'numberfield',  
fieldLabel       : 'this is a label',
id               : 'id',
name             : 'id', 
width            : 50,
labelStyle       : 'width:300px',
minValue         : 1,
hideTrigger      : true,
allowNegative    : false,
maxValue         : 7,
decimalPrecision : 1,
allowPureDecimal : true,
editable         : true,   
allowBlank       : false

接受数字1、1.1、3.5 ... 7

但是我也需要接受0 。 extjs中是否存在异常等属性或允许输入0以及已建立的最小值和最大值的属性?

如果有人可以指导我,我将不胜感激

感谢您的时间!

2 个答案:

答案 0 :(得分:0)

我认为没有属性可以执行此操作,但是您可以注册一个更改侦听器,并检查 newValue参数是否在0和1之间。因此,将numberfield的值设置为零。

listeners: {
    change: function (component, newValue, oldValue) {
        if (newValue > 0 && newValue < 1)
            component.setValue(0);
    }
}

答案 1 :(得分:0)

删除minValuemaxValue配置,然后使用validator配置设置自定义验证功能。

    xtype: 'numberfield',
    fieldLabel: 'this is a label',
    id: 'id',
    name: 'id',
    hideTrigger: true,
    allowNegative: false,
    decimalPrecision: 1,
    allowPureDecimal: true,
    editable: true,
    allowBlank: false,
    validator() {
        value = this.getValue();
        if (value === 0 || (value >= 1 && value <=7)) {
            return true;
        }
        return 'Not valid';
    }