Подтвердить что ты не робот

Flex: текстовый ввод, который принимает только номер

Нужен код, который принимает только числа. При вводе кода необходимо проверить, является ли он номером, если нет, он должен удалить введенный ключ или вообще не ввести его

4b9b3361

Ответ 1

Посмотрите на свойство ограничения в классе TextInput. Установите его на "0-9"

Ответ 2

   <s:TextInput id="textInput"
                restrict="0-9"
                widthInChars="20"
                maxChars="20" />
   <mx:TextInput id="textInput"
                restrict="0-9"
                widthInChars="20"
                maxChars="20" />

Ответ 3

Здесь есть элемент управления NumericStepper.

Смотрите: http://livedocs.adobe.com/flex/3/html/help.html?content=controls_11.html

Если вы не хотите стрелки вверх и вниз, вы можете установить для своего класса скина значение null.

Cheers, Хитрый

Ответ 4

<?xml version="1.0"?>
<!-- Simple example to demonstrate the TextInput control. -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" viewSourceURL="srcview/index.html">

    <mx:Panel title="Dodawanie dwóch liczb :)" height="279" width="238" 
        paddingTop="10" paddingLeft="10">

        <mx:TextInput id="src"
          restrict="0-9"
                maxChars="20" />
        <mx:TextInput id="dest"
          restrict="0-9"
                maxChars="20"/>

        <mx:Button label="dodaj" click= "dodaj();" id="but"/>
        <mx:Label text="Suma" width="59"/>
        <mx:Label text="0" width="160" id="wynik"/>

    </mx:Panel>
    <mx:Script>
     <![CDATA[
      import mx.formatters.NumberBase;
      public function dodaj():Number
      {
       var liczba:Number = Number(src.text) + Number(dest.text);
       wynik.text = liczba.toString();
       return 0;
      }

     ]]>
    </mx:Script>
</mx:Application>

Ответ 6

Я использую somthing like

<s:TextInput id="textInput"
    restrict="0-9.\\-"
    change="onChangeNumberTextInput(event, 6)"/>

private function onChangeNumberTextInput(event:TextOperationEvent, precision:uint = 2):void
    {
        var strNumber:String = "";
        if (event.currentTarget is mx.controls.TextInput)
            strNumber = (event.currentTarget as mx.controls.TextInput).text;
        else if (event.currentTarget is spark.components.TextInput)
            strNumber = (event.currentTarget as spark.components.TextInput).text;
        else
            return;

        var ind:int = strNumber.indexOf(".");
        if (ind > -1)
        {
            var decimal:String = strNumber.substring(ind + 1);
            if (decimal.indexOf(".") > -1)
                strNumber = strNumber.substring(0, ind + 1 + decimal.indexOf("."));
            if (decimal.length > precision)
                strNumber = strNumber.substring(0, ind + 1 + precision);
        }

        if (event.currentTarget is mx.controls.TextInput)
            (event.currentTarget as mx.controls.TextInput).text = strNumber;
        else if (event.currentTarget is spark.components.TextInput)
            (event.currentTarget as spark.components.TextInput).text = strNumber;
    }

Функция прослушивателя изменений удаляет все за пределами числа символов точности из десятичной точки или любого второго появления ".":

Ответ 7

Я не уверен, что именно вы хотите сделать. Если вы просто хотите суммировать эти два, используйте следующие

{parseInt(txt1.text) + parseInt(txt2.text)}

ваш пример просто объединяет эти две строки. В этом примере попробуйте преобразовать текст в число и затем суммировать эти два значения.

Ответ 8

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

попробуйте "SoftKeyboard" number "; '