24

数字のみを受け入れるコードが必要です。入力時に、コードはそれが数字であるかどうかを確認する必要があり、そうでない場合は、入力されたキーを削除するか、まったく入力しない必要があります

4

8 に答える 8

31

TextInput クラスの restrict プロパティを見てください。「0~9」に設定

于 2009-11-17T11:16:59.593 に答える
13
   <s:TextInput id="textInput"
                restrict="0-9"
                widthInChars="20"
                maxChars="20" />
   <mx:TextInput id="textInput"
                restrict="0-9"
                widthInChars="20"
                maxChars="20" />
于 2009-11-17T11:33:20.297 に答える
3

NumericStepper というコントロールがあります。

参照: http://livedocs.adobe.com/flex/3/html/help.html?content=controls_11.html

そこに上下の矢印が必要ない場合は、スキン クラスを null に設定できます。

乾杯、スライ

于 2011-11-06T13:20:02.733 に答える
2
<?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>
于 2010-07-04T12:15:17.640 に答える
1

mx.validators.NumberValidatorを見てください:http://livedocs.adobe.com/flex/3/langref/mx/validators/NumberValidator.html

于 2009-11-18T10:11:24.073 に答える
1

私は次のようなものを使用します

<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;
    }

変更リスナー関数は、小数点から精度文字数を超えるすべてのもの、または「.」の 2 番目の出現を削除します。

于 2013-11-06T13:34:21.607 に答える
0

アプリケーションがアプリケーションから数字キーボードのみを要求するように、プロパティを変更する必要があります。

'SoftKeyboard"番号" を試してください。'

于 2013-04-09T03:15:30.930 に答える
0

あなたが何をしたいのか正確にはわかりません。これら2つを合計したい場合は、次を使用します

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

あなたの例は、これらの2つの文字列を連結するだけです。この 1 つの例では、テキストを数値に変換してから、それら 2 つの値を合計しようとしています。

于 2010-04-28T22:09:12.880 に答える