숫자 스테퍼에 최대 및 최소를 설정하면 해당 범위 밖의 숫자를 입력 할 수 있습니다. 그러나 그것보다 큰 숫자를 입력하면 자동으로 최대 값을받습니다. 이 경우 오류를 표시하지만 최대 값과 최소값을 계속 설정하려면 어떻게해야합니까?숫자 스테퍼의 값이 범위를 벗어날 때 오류 표시
1
A
답변
2
사용자가 가의 text input
에서 키 또는 focus out
를 Enter를 누르 (10) NumericStepper
당신이 입력 한 번호가 아래와 같은 범위 내에 있는지 확인하는 로직을 넣을 수 있습니다 :
<?xml version="1.0"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark">
<fx:Script><![CDATA[
import mx.controls.Alert;
private var isProcessRequiredOnFocusOut:Boolean = true;
private function addEventListeners():void {
numericStepper.addEventListener(KeyboardEvent.KEY_DOWN, checkRange, true);
numericStepper.addEventListener(FocusEvent.FOCUS_OUT, checkRange, true);
}
private function checkRange(event:Event):void {
if (event is KeyboardEvent && (event as KeyboardEvent).keyCode == Keyboard.ENTER) {
isProcessRequiredOnFocusOut = false;
processRangeCheck();
}
else if (event is FocusEvent && (event as FocusEvent).type == FocusEvent.FOCUS_OUT
&& isProcessRequiredOnFocusOut) {
processRangeCheck();
}
}
private function processRangeCheck():void {
var typedNumber:Number = Number(numericStepper.textDisplay.text);
if (typedNumber > numericStepper.maximum || typedNumber < numericStepper.minimum) {
Alert.show("The typed number " + typedNumber + " is out of range.", "Out of Range Warning");
}
isProcessRequiredOnFocusOut = true;
}
]]></fx:Script>
<s:Panel title="Show Error message when Typed Number is out of range in Numeric Stepper."
verticalCenter="0" horizontalCenter="0">
<s:VGroup paddingTop="10" paddingLeft="10"
paddingRight="10" paddingBottom="10"
horizontalAlign="center"
width="100%">
<s:Label text="The valid range of Numeric Stepper is 10-20."/>
<s:NumericStepper id="numericStepper"
minimum="10"
maximum="20"
creationComplete="addEventListeners()"/>
<s:Button label="Click here to focus out from the Text Input of Numeric Stepper."/>
</s:VGroup>
</s:Panel>
</s:Application>
2
음, 최대과 여전히 입력 점점 -while NumericStepper
구성 요소의 최소 값에 대한 입력 값을 확인 할 수있는 직관적 인 방법은 textField
재산 KEY_UP
의 키보드 이벤트를 수신하는 것 NumericStepper
인스턴스의 :
import fl.controls.NumericStepper;
import flash.events.KeyboardEvent;
var numericStepper:NumericStepper = new NumericStepper();
numericStepper.maximum = 250;
numericStepper.minimum = 3;
numericStepper.textField.addEventListener(KeyboardEvent.KEY_UP, function(e:Event):void {
var n:Number = Number(numericStepper.textField.text);
if (n > numericStepper.maximum || n < numericStepper.minimum) {
trace("Error: Out of Range!");
}
});
addChild(numericStepper);
+0
내가 텍스트 필드 속성을 찾을 수 없습니다 숫자 스테퍼의 – Waveter
0
사용 mx_internal의 property에 NumericStepper
의 inputField를 참조하십시오
그것은 나를 위해 작동합니다. 대단히 감사합니다. – Waveter