我有文字输入框。使用numberValidator对每个框进行验证。 现在,问题在于使用警告框来显示是否发生任何错误。
流程图::
1>在textBox中插入值。 2 - ; NumberValidator验证“trigger = change”的输入。 3 GT;如果错误,则显示警告消息。用户单击“确定”返回到表单。 4>焦点设置回TextBox。 5个但是,警告框使文本输入值为空/空。即,现在不会显示用户输入的先前错误值和默认正确值。
目标:显示在文本框中输入的最新正确值。不是任何其他的默认值,而是用户输入的最新正确值。
任何人都可以帮忙吗?
答案 0 :(得分:0)
您需要将最新的正确答案存储在变量中,并使警报的单击/关闭处理程序将值替换为存储的var。
这是一个监听警报事件的例子:
<?xml version="1.0"?>
<!-- controls\alert\AlertEvent.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.events.CloseEvent;
private var lastKnownCorrectAnswer:String = "Some Answer";
private function alertListener(eventObj:CloseEvent):void {
// Check to see if the OK button was pressed.
if (eventObj.detail==Alert.OK) {
myText.text = lastKnownCorrectAnswer;
}
}
]]>
</mx:Script>
<mx:TextInput id="myAnswer"
width="150"
text="" />
<mx:Button id="myButton"
label="Copy Text"
click='Alert.show("Copy Text?", "Alert",
Alert.OK | Alert.CANCEL, this,
alertListener, null, Alert.OK);'/>
</mx:Application>
您需要在那里添加验证逻辑,但您明白了。以上内容来自Alert docs。
答案 1 :(得分:0)
这是一个完整的答案。我使用文本框的“enter”事件进行验证,因为只有输入一个字符后才会触发“change”事件
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute">
<mx:Script>
<![CDATA[
import mx.controls.Alert
// set last correct value to a default
private var lastCorrectValue:String="411"
function handleInvalid(event:Event)
{
Alert.show("invalid");
textInput.text=lastCorrectValue
}
function handleValid()
{
Alert.show('Validation Succeeded!')
lastCorrectValue=textInput.text
}
]]>
</mx:Script>
<mx:TextInput id="textInput"
text="{lastCorrectValue}"/>
<!-- Use the enter event of the text box to do validation. The change event fires after a single character-->
<mx:NumberValidator source="{textInput}"
property="text"
integerError="Enter Integer value"
domain="int"
trigger="{textInput}"
triggerEvent="enter"
invalid="handleInvalid(event)"
valid="handleValid();"/>
</mx:Application>
答案 2 :(得分:0)
在文本输入FocusIn()上触发事件,并将任何文本值存储在变量中。 (那将是你最后的正确答案)。验证后将输入框文本重置为此值...希望我有道理:)