我有一个简单的表格,包含电子邮件和密码。我想在电子邮件和电子邮件中显示提交按钮。密码有效。我的想法是当我运行我的handleValidator函数时,我可以检查电子邮件&的“有效”属性的某种值。通行证的“有效”财产。如何访问项目的有效属性?
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
>
<fx:Script>
import mx.events.ValidationResultEvent;
private function handleValidator ( eventObj:ValidationResultEvent ):void {
if( eventObj.type==ValidationResultEvent.VALID
// what goes here?????
// && emailValidator.valid = true ?????
// && passValidator.valid = true ??????
){
submit.visible = true;
}
else {
submit.visible = false;
}
}
</fx:Script>
<fx:Declarations>
<mx:EmailValidator id="emailValidator" source="{email}" property="text"
trigger="{email}" triggerEvent="change"
valid="handleValidator(event)" invalid="handleValidator(event)"
/>
<mx:StringValidator id="passValidator" source="{pass}" property="text"
trigger="{pass}" triggerEvent="change"
valid="handleValidator(event)" invalid="handleValidator(event)"
minLength="5" maxLength="10"
/>
</fx:Declarations>
<s:VGroup>
<s:TextInput id="email" />
<s:TextInput id="pass" />
<s:Button id="submit" visible="false" />
</s:VGroup>
</s:Application>
答案 0 :(得分:6)
尝试这样的事情。首先将验证器放入数组:
<mx:Array id="validators">
<mx:EmailValidator id="emailValidator" source="{email}" property="text">
<mx:StringValidator id="passValidator" source="{pass}" property="text"
minLength="5" maxLength="10"/>
</mx:Array>
为您的输入添加更改事件处理程序:
<s:TextInput id="email" change="validate()"/>
<s:TextInput id="pass" change="validate()"/>
处理程序将触发验证:
private function validate():void{
//validate both your inputs simultaneously
var errors:Array = Validator.validateAll(validators);
if (errors.length>0){
//hide submit button
}else{
//show submit button
}
}
就是这样。
答案 1 :(得分:1)
我也会选择2DH进行验证,你也可以查看以下两篇帖子,我在验证时经常会这样做。
http://joelhooks.com/2009/02/01/form-validation-for-the-lazy-programmer-in-flex/
这解释了2DH给出的相同技术
http:// aralbalkan.com/1125
这个增加了一些功能,可以更好地显示错误工具提示。
希望有所帮助。
答案 2 :(得分:0)
,检查event.currentTarget id以确定电子邮件或密码是否已经过验证。相应地做出反应,即如果电子邮件或密码有效,则增加变量,如果无效,则向用户发送某种形式的错误消息。
如果两个字段都有效,则您的变量应该等于要验证的字段数(假设变量的默认值为0),则可以显示提交按钮。