我想使用验证器来确保 Flex 中的 2 个密码字段匹配。我希望验证器像普通的 flex 验证控件一样突出显示表单字段。谢谢。
最佳答案
enter code here
我创建了自己的自定义验证器(主要从日期验证器复制):
package validators
{
import mx.validators.ValidationResult;
import mx.validators.Validator;
public class PasswordValidator extends Validator
{
// Define Array for the return value of doValidation().
private var results:Array;
public function PasswordValidator()
{
super();
}
public var confirmationSource: Object;
public var confirmationProperty: String;
// Define the doValidation() method.
override protected function doValidation(value:Object):Array {
// Call base class doValidation().
var results:Array = super.doValidation(value.password);
if (value.password != value.confirmation) {
results.push(new ValidationResult(true, null, "Mismatch",
"Password Dosen't match Retype!"));
}
return results;
}
/**
* @private
* Grabs the data for the confirmation password from its different sources
* if its there and bundles it to be processed by the doValidation routine.
*/
override protected function getValueFromSource():Object
{
var value:Object = {};
value.password = super.getValueFromSource();
if (confirmationSource && confirmationProperty)
{
value.confirmation = confirmationSource[confirmationProperty];
}
return value;
}
}
}
使用的示例 mxml:
<validators:PasswordValidator id="pwvPasswords" required="true" source="{txtPassword}" property="text" confirmationSource="{txtPasswordConfirm}" confirmationProperty="text" trigger="{btnStep2Finish}" />
这是非常基本的,但主要是我需要的。虽然它只突出显示密码框,但想让它突出显示两者。
关于apache-flex - 弹性 : How do you validate 2 password fields to make sure they match?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/508696/