Flex:如何验证2个密码字段以确保它们匹配?

Sha*_*awn 3 apache-flex validation

我想使用验证器来确保Flex中有2个密码字段匹配.我希望验证器突出显示表单字段,如普通的flex验证控件.谢谢.

小智 6

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;
        }       

    }
}
Run Code Online (Sandbox Code Playgroud)

用于使用的示例mxml:

<validators:PasswordValidator id="pwvPasswords" required="true" source="{txtPassword}" property="text" confirmationSource="{txtPasswordConfirm}" confirmationProperty="text" trigger="{btnStep2Finish}" />
Run Code Online (Sandbox Code Playgroud)

这是非常基本的,但它主要是我需要的.它只突出显示密码框,想要突出显示它们.