Flex - проверка номера, не уберет ли красное свечение, если щелкнуть фокус?(пример предоставлен) - PullRequest
1 голос
/ 30 декабря 2010

Воспроизвести проблему:

  • код запуска
  • установить флажок
  • нажать на первое поле ввода
  • ввести: 100

Красное поле с ошибкой должно исчезнуть, но оно исчезнет, ​​если вы сфокусируете внимание на другом компоненте, например, на втором поле ввода.

Если вы ссылаетесь на экран, установите флажок и TAB в первом поле ввода, введите 100, свечение ошибки исчезнет, ​​как я и ожидал.Это то, что я хочу, чтобы клик тоже.Есть идеи?

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" 
    initialize="onInit()">

    <mx:Script>
        <![CDATA[
            import mx.validators.NumberValidator;

            private var amountValidator:NumberValidator;

            private function onInit():void{

                amountValidator = new NumberValidator();                
                amountValidator.property = "text";
                amountValidator.trigger = txtAmount;
                amountValidator.triggerEvent = "change";
                amountValidator.minValue = 10;
                amountValidator.domain = "int";
                amountValidator.precision = 0;
                amountValidator.allowNegative = false;  

                amountValidator.source = txtAmount;                         
            }

            private function onInputChange():void{
                amountValidator.validate();
                trace("input");
            }

            private function checkClick():void{
                if(myCheckBox.selected){
                    amountValidator.validate();
                }
            }
        ]]>
    </mx:Script>
    <mx:HBox horizontalGap="5" x="68" y="37">
        <mx:CheckBox id="myCheckBox" click="checkClick()"/>
        <mx:TextInput id="txtAmount" change="onInputChange()" width="160" height="20" restrict="0-9" maxChars="8" x="75" y="44"/>
        <mx:TextInput id="dummyInput"  y="72" x="75"/>
    </mx:HBox>

</mx:Application>

1 Ответ

1 голос
/ 17 января 2011

Прекрасная штука, наконец-то нашел ответ на этот вопрос.

Это зарегистрировано как ошибка в Flex SDK 3.5 с обходным решением. Добавьте тег события keyUp в целевой компонент TextInput следующим образом:

keyUp="txtAmount.drawFocus(true)"

Бинго!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...