Dijit maxLength через язык ограничений додзё?

Я работаю над проектом, в котором пытаюсь сопоставить ограничения с элементами управления Dijit в XSLT для HTML.

Одним из таких ограничений является максимальная длина текстового поля. Однако я не могу найти такое ограничение в языке ограничений Dojo.

Существует ли такое ограничение (за исключением RegEx), которое я пропустил в моем примере ниже?

    <label for="shortField">shortField </label>
    <input id="shortField" data-dojo-type="dijit/form/ValidationTextBox"
        data-dojo-props = "name: 'shortField',
                           width:400,
                           height:150,
                           value: '1234567890',
                           required: true,
                           constraints: { max:10, maxLength:10, length:10, size:10 }
        " />

Для согласованности я бы предпочел использовать ограничение, а не устанавливать свойство maxLength _TextBoxMixin.

(К сожалению, настройка регулярного выражения в ограничениях также нежелательна, так как это может быть переопределено позже, вне моего контроля.)


person Joeppie    schedule 28.11.2013    source источник


Ответы (1)


Оказывается, такого ограничения нет. кроме того, поскольку я обнаружил, что мне дополнительно нужно проверить минимальную длину, я выбрал решение создания подкласса Dijit.Form.ValidationTextBox.

Это реализация, которую я выбрал для метода isValid, который считывает ограничения, поэтому я могу поддерживать согласованность генерируемого кода XSL. )

    isValid : function(){
                var ancestorsValid = this.inherited(arguments);

                if(ancestorsValid){
                    //Acquire only meaningful validation boundaries.
                    var minLength = this.constraints && this.constraints.minLength ? Number(this.constraints.minLength) : null;
                    var maxLength = this.constraints && this.constraints.maxLength ? Number(this.constraints.maxLength) : null;

                    //Validate min and max if present.
                    return  ((minLength === null) || this.value.length >= minLength) &&
                            ((maxLength === null) || this.value.length <= maxLength);

                }
                return false;
            }
person Joeppie    schedule 29.11.2013