Показать сообщение отдельно
Старый 30.08.2011, 13:36
ekonomizer вне форума Посмотреть профиль Отправить личное сообщение для ekonomizer Найти все сообщения от ekonomizer
  № 1  
Ответить с цитированием
ekonomizer

Регистрация: Aug 2011
Сообщений: 22
По умолчанию Валидация в Автокомплитере

Здравствуйте помогите пожалуйста разобраться.
У меня есть компонент Автокомплита - представляет собой смесь DropDownList и TetxInputa.



Текст автокомплитов (список вариантов) берется из ArrayCollection.
Также в нем есть кнопка с крестиком - удаляет весь текст в ней вся проблема.

Хочу повесить на автокомплит валидацию - если пользователь ничего не ввел или ввел какую нибудь хрень не из массива то рядом горит крест, если ввел или выбрал строку из массива то убираю крестик и делаю visible галочку.
Компонент:
Код:
<ns:AutoComplete id="autoComplete_1"
		 dataProvider="{areas}"
		 searchMode="sync" 
		 keyDown="autoComplete_1_keyDownHandler(event)"
		 valueCommit="autoComplete_valueCommitHandler(event)"
Обработчик:
Код AS3:
protected function autoComplete_valueCommitHandler(event:FlexEvent):void
{
    // Для простоты проверяю только на одно значение.
    if (autoComplete_1.text != "Ярославская")
	redArea();
}
Проблема заключается в том как какое правильно выбрать событие для DropDownList - а именно кнопки удаления текста. Для TextInput выбрал keyDown и каждый раз сверяю попал ли юзер в данные из массива или нет все работает хорошо.

Для DropDownList пытался повесить на valueCommit, получается что в обработчик попадаю тогда когда нужно, но почему то не проходит проверка внутри. Действие выполняется только после того как например убрать фокус в следующий текст ипут.
Думал что может быть это из за того что событие вызывается до того как текст будет удален - повесил в обработчик алерт он показал пустую строку.

Посоветуйте пожалуйста как быть в этой ситуации и как лучше организовать валидацию.