需要一个只接受数字的代码。在输入时,代码必须检查它是否是数字,如果没有,它必须删除输入的密钥或根本不输入
答案 0 :(得分:31)
查看TextInput类的restrict属性。将其设置为“0-9”
答案 1 :(得分:13)
<s:TextInput id="textInput"
restrict="0-9"
widthInChars="20"
maxChars="20" />
<mx:TextInput id="textInput"
restrict="0-9"
widthInChars="20"
maxChars="20" />
答案 2 :(得分:3)
有一个名为NumericStepper的控件。
请参阅:http://livedocs.adobe.com/flex/3/html/help.html?content=controls_11.html
如果你不想在那里使用向上和向下箭头,你可以将它们的皮肤类设置为null。
干杯, 狡猾
答案 3 :(得分: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>
答案 4 :(得分:1)
查看mx.validators.NumberValidator:http://livedocs.adobe.com/flex/3/langref/mx/validators/NumberValidator.html
答案 5 :(得分: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;
}
更改侦听器函数从小数点或任何第二次出现的“。”中删除超出精度字符数的所有内容:
答案 6 :(得分:0)
我不确定你到底想做什么。如果您只想将这两者相加,请使用以下
{parseInt(txt1.text) + parseInt(txt2.text)}
你的例子只是连接这两个字符串。这个例子尝试将文本转换为数字,然后将这两个值相加。
答案 7 :(得分:0)
您需要更改属性,以便应用程序仅从应用程序请求数字键盘。
尝试'SoftKeyboard'号码“; '