我有一个关于flex的问题。 我有一个表格,需要电子邮件。 我用Google搜索并找到了以下解决方案:
<mx:FormItem label="Email" id="emailFormItem" width="100%" styleName="formEven" required="true">
<mx:TextInput id="emailTextInput" width="100%" text="{user.email}"/></mx:FormItem>
问题是当我按下确定时仍然会进行通话。 我知道你必须自己验证以下内容,但有没有人知道如何验证字段?
解决方案:
我找到了解决方案:
您可以为要验证的每个字段创建验证器,然后创建此功能:
private function isValid():Boolean {
var failedValidators:Array = Validator.validateAll([emailValidator, userNameValidator, languageValidator, firstNameValidator, lastNameValidator]);
return failedValidators.length == 0;
}
可以关闭。
答案 0 :(得分:2)
我通常做的是创建一个名为isSubmitEnabled或isFormComplete的方法。我在keyUp上在所需的每个字段上调用它并检查所有字段中的值(以及我想要做的任何其他验证)然后只要一切都检出我设置提交按钮以启用,否则我设置提交按钮被禁用。只要你在开始时禁用按钮,你就应该好好去。
我已多次使用此方法并发现它最容易使用,尤其是维护。我将查看文档,看看我是否可以看到您可以使用表单项上的必需属性做什么。
更新:
根据文件:
此属性控制指标 仅显示。你必须附上一个 如果你是孩子的验证者 需要输入验证。
你想要的是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)"/>
请参阅该链接上的代码示例,了解如何使用它。这个例子实际上正是你想要的。 HTH
答案 1 :(得分:0)
<fx:Declarations>
<mx:RadioButtonGroup id="a1" itemClick="usdradio(event);"/>
<fx:Model id="creditcard">
<card>
<cardType>{cardTypeCombo.selectedItem.data}</cardType>
<cardNumber>{cardNumberInput.text}</cardNumber>
</card>
</fx:Model>
<mx:CreditCardValidator id="ccV"
cardTypeSource="{creditcard}" cardTypeProperty="cardType"
cardNumberSource="{creditcard}" cardNumberProperty="cardNumber"
trigger="{myButton}" triggerEvent="click"
cardTypeListener="{cardTypeCombo}"
cardNumberListener="{cardNumberInput}"
valid="Alert.show('Validation Succeeded!')"/>
<mx:ArrayCollection id="dp">
<fx:Object label="American Express" data="American Express"/>
<fx:Object label="Diners Club" data="Diners Club"/>
<fx:Object label="Discover" data="Discover"/>
<fx:Object label="MasterCard" data="MasterCard"/>
<fx:Object label="Visa" data="Visa"/>
</mx:ArrayCollection>
<mx:CurrencyValidator source="{priceUS}" property="text" precision="2"
trigger="{myButton2}" triggerEvent="click"
valid="Alert.show('Validation Succeeded!')"/>