2013-09-09 4 views
1

95% моих полей для формы У меня есть пользовательский валидатор -> поэтому я включаю его отдельно от моей конфигурации defaults контейнера.ExtJS: проверка по умолчанию

Однако для остальных 5% полей я хочу использовать встроенную проверку . Есть ли способ вручную указать использование валидатора по умолчанию для заданного типа поля?

В настоящее время я стараюсь,

{ 
    name: 'normalNumberField', 
    xtype: 'numberfield', 
    validator: Ext.form.field.Number.validate, 
    ... 
} 

, но я получаю сообщение об ошибке, что Ext.form является undefined (почему? Я явно есть ссылка на Ext ...)

ответ

2

validator не определен по умолчанию. Проверка Номер поля происходит в несколько этапов (это взято из документации ExtJS):

  1. поле конкретных валидатор

    Валидатор предлагает способ настройки и повторного использования спецификации проверки. Если поле сконфигурировано с функцией validator, то будет передано текущее значение поля. validator функция ожидается возвращение как:

    • Boolean true если значение является действительным (проверка продолжается).
    • a Строка, отображающая недопустимое сообщение, если оно недействительно (завершение проверки).
  2. Basic Validation

    Если validator не остановил проверки, основные поступления проверки следующим образом:

    • allowBlank: (Invalid сообщение = blankText)

      В зависимости от конфигурация allowBlank, a пустое поле приведет к приостановке проверки на этом шаге и возвращает Булево значение true или false соответственно.

    • minLength: (Invalid сообщение = minLengthText)

      Если переданное значение не удовлетворяет minLength указанных, привалов проверки.

    • maxLength: (Invalid сообщение = maxLengthText)

      Если переданное значение не удовлетворяет maxLength указанных, привалов проверки.

  3. Предварительно Validation Типы (VTypes)

    Если ни один из предыдущих шагов проверки не останавливает проверку, поле сконфигурирован с vtype будет использовать соответствующую Ext.form.field.VTypes функцию проверки. Если значение недействительно, то поле vtypeText или свойство VType vtype Text будет использовано для недопустимого сообщения. Клавиши на поле будут отфильтрованы в зависимости от свойства vyppe vtype VTypes.

  4. поля специфического тест регулярного выражения Если ни один из предыдущих шагов проверки не останавливает проверку, сконфигурированный regex тест поля будет обработан. недопустимого сообщения для этого теста конфигурируются с regexText

  5. Числа полой конкретной проверкой

    К дополнительным валидациям запуска теста, что значение является числом, и , что он находится в пределах заданных минимального и максимальных значений ,

Итак, длинный рассказ короткий, чтобы переопределить validator, указанный в defaults, вы можете просто использовать validator, который всегда возвращает true.

{ 
    name: 'normalNumberField', 
    xtype: 'numberfield', 
    validator: function(){ return true; }, 
    ... 
} 
+0

Да, это работает отлично. Спасибо приятель – Colin

Смежные вопросы