我有一个关于 flex 的问题。 我有一个表格,需要电子邮件。 我用谷歌搜索并找到了以下解决方案:
<mx:FormItem label="Email" id="emailFormItem" width="100%" styleName="formEven" required="true">
<mx:TextInput id="emailTextInput" width="100%" text="{user.email}"/></mx:FormItem>
问题是,当我按下 ok 时,调用仍然在进行。 我知道您必须自己验证以下内容,但有人知道我如何验证字段吗?
解决方法:
我找到了一个解决方案:
您可以为每个要验证的字段创建一个验证器,然后创建这个函数:
private function isValid():Boolean {
var failedValidators:Array = Validator.validateAll([emailValidator, userNameValidator, languageValidator, firstNameValidator, lastNameValidator]);
return failedValidators.length == 0;
}
这可以关闭。
最佳答案
我通常做的是创建一个名为 isSubmitEnabled 或 isFormComplete 之类的方法。我在每个需要的字段上在 keyUp 上调用它,并检查所有字段中的值(以及我想做的任何其他验证),然后只要一切都检查完毕,我就将提交按钮设置为启用,否则我将设置提交按钮被禁用。只要您在开始时禁用该按钮,就可以开始了。
我已经多次使用这种方法,发现它最容易使用,尤其是维护起来。不过,我会查看文档,看看是否可以看到您可以使用表单项上的 required 属性做什么。
更新:
根据文档:
This property controls the indicator display only. You must attach a validator to the children if you require input validation.
你想要的是 mx.validators.Validator ( http://livedocs.adobe.com/flex/3/langref/mx/validators/Validator.html )
<mx:Validator id="reqValid" required="true"
source="{fname}" property="text"
valid="handleValid(event)" invalid="handleValid(event)"/>
请参阅该链接上的代码示例以了解如何使用它。我认为这个例子实际上正是你正在寻找的。
关于apache-flex - flex 中的必填字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/585926/