结合状态和验证器 - 闪存构建器

时间:2012-12-23 10:41:25

标签: flex flash-builder validation states

我正在为我的学校项目开设网上商店,我遇到了一个我无法解决的问题。

现在我为用户填写了表单并添加了一些验证器来检查用户是否填写了正确的信息。用户填写表单后,可以单击提交按钮继续。

我也在与各州合作,所以当我按下提交按钮时,我会转到下一页。

现在我的问题是:即使用户没有填写表单并点击“提交”,他仍然会转到下一页。验证有效,但它不会阻止用户继续。

这是我的验证码

<mx:EmailValidator id="emailValidator"
                       source="{email}"
                       property="text"
                       triggerEvent="change"/>
    <mx:StringValidator id="nameValidator"
                        source="{Name}"
                        property="text"
                        requiredFieldError="Put in a name"
                        triggerEvent="change"/>
    <mx:StringValidator id="SurnameValidator"
                        source="{Surname}"
                        property="change"
                        requiredFieldError="Put in a surname"
                        triggerEvent="click"/>
    <s:NumberValidator id="PostcodeValidator"
                       source="{Postcode}"
                       property="text"
                       requiredFieldError="Put in a zipcode"
                       triggerEvent="change"/>

现在按钮代码

<s:Button label="submit"
              id="submitButton"
              click="currentState='Shoppingstate'"/>

2 个答案:

答案 0 :(得分:1)

您可以将submitButton的enabled属性绑定到验证程序的状态

答案 1 :(得分:-1)

我会对每个字段进行检查。首先将提交按钮单击事件处理程序更改为正式方法:

<s:Button label="submit"
              id="submitButton"
              click="onSubmit(event)"/>

然后检查方法中的验证方法:

protected function onSubmit(event:Event):void{
 if((email.errorString == '') && (Name.errorString == '') && (Surname.errorString == '') (Postcode == '')){
 currentState='Shoppingstate'
}
}