有誰知道限制用戶輸入超過100的數字到flex中的textinput字段的方法嗎?Flex中TextInput的最大值
即用戶可以輸入之間,包括0-100,但事先沒有101
感謝您的任何意見任何號碼!
有誰知道限制用戶輸入超過100的數字到flex中的textinput字段的方法嗎?Flex中TextInput的最大值
即用戶可以輸入之間,包括0-100,但事先沒有101
感謝您的任何意見任何號碼!
您必須手動檢查,如果這是你的代碼
<input change='_handleTextChanges(event)' />
,這是回調
function _handleTextChanges(evt:Event):void{
var target:TextInput = evt.currentTarget as TextInput;
if(!target) return;
if(parseInt(target.text) > 100){
Alert.show("You can't enter a number grater than 100");
target.text = "100";
}
if(parseInt(target.text) < 0){
Alert.show("You can't enter a number smaller than 0");
target.text = "0";
}
}
我還沒有嘗試過,但它應該工作
一幾個選項:
試試這個,它應該給你你正在尋找的結果 - 它不會允許你輸入任何超出範圍的東西,並且將它標記爲無效(還有一個漂亮的工具提示信息)。
默認驗證程序只提供驗證輸入的方法,但不限制範圍內的輸入。限制屬性允許單個字符匹配(但不是像你需要的範圍)。
這使用它們兩個和一些事件來處理它 - 非常乾淨,易於閱讀/更改該範圍。 。
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:s="library://ns.adobe.com/flex/spark" height="100%" width="100%">
<fx:Declarations>
<s:NumberValidator id="numberValidator" property="text"
minValue="0" maxValue="100"
source="{inputNumber}" trigger="{inputNumber}" triggerEvent="change"
valid ="inputNumber.toolTip=inputNumber.text;"
invalid ="inputNumber.text=inputNumber.toolTip;"/>
</fx:Declarations>
<s:TextInput id="inputNumber" restrict="0-9"/>
</s:Application>
Ps這可能看起來像使用工具提示作弊一樣,但驗證程序會自動提供它自己的工具提示。如果你不喜歡那樣,你可以把它粘在另一個靜態變量中 - 我這樣做是因爲驗證器提供了上面提到的工具提示並保持它的清潔。
非常棒!謝謝! – korymiller