Добавить исключение к минимальному / максимальному значению в числовом поле extjs 3 - PullRequest
0 голосов
/ 15 марта 2019

числовое поле, подобное этому

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 голосов
/ 17 марта 2019

Удалите конфиги minValue и maxValue, а затем установите пользовательскую функцию проверки с использованием конфигурации 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';
    }
0 голосов
/ 15 марта 2019

Я не думаю, что для этого есть свойство, но вы можете зарегистрировать change listener и проверить, находится ли параметр newValue между 0 и 1. Если это так,установить значение числового поля в ноль.

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