Обязательные поля во flex

У меня вопрос по флексу. У меня есть форма и электронная почта требуется. Я погуглил и нашел следующее решение:

<mx:FormItem label="Email" id="emailFormItem"  width="100%" styleName="formEven" required="true">                   
<mx:TextInput id="emailTextInput" width="100%" text="{user.email}"/></mx:FormItem>

Проблема в том, что когда я нажимаю ок, звонок все равно идет. Я знаю, что вы должны проверить следующее самостоятельно, но кто-нибудь знает, как я могу проверить поля?

Решение:

Я нашел решение для этого:

Вы можете создать валидатор для каждого поля, которое хотите проверить, а затем создать эту функцию:

private function isValid():Boolean {
            var failedValidators:Array = Validator.validateAll([emailValidator, userNameValidator, languageValidator, firstNameValidator, lastNameValidator]);
            return failedValidators.length == 0;
        }

Это можно закрыть.


person user29964    schedule 25.02.2009    source источник


Ответы (1)


что я обычно делаю, так это создаю метод, называемый чем-то вроде isSubmitEnabled или isFormComplete. Я вызываю его на keyUp для каждого поля, которое требуется, и проверяю значения во всех полях (и любую другую проверку, которую я хочу сделать), а затем, пока все проверяется, я устанавливаю кнопку отправки, чтобы она была включена, в противном случае я устанавливаю кнопка отправки должна быть отключена. Пока вы отключаете кнопку при запуске, все должно быть хорошо.

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

Обновление:

Согласно документам:

Это свойство управляет только отображением индикатора. Вы должны прикрепить валидатор к дочерним элементам, если вам требуется проверка ввода.

Вам нужен mx.validators.Validator (http://livedocs.adobe.com/flex/3/langref/mx/validators/Validator.html)

 <mx:Validator id="reqValid" required="true"
    source="{fname}" property="text" 
    valid="handleValid(event)" invalid="handleValid(event)"/>

Посмотрите примеры кода по этой ссылке, чтобы узнать, как его использовать. Я думаю, что пример на самом деле именно то, что вы ищете. ХТН

person Ryan Guill    schedule 25.02.2009