Thanks! This works great... Quick question, I couldn't find it in the manual...
a) is it required to set addPrefixPath() b) if so how can I set it globally? Edward Haber wrote: > > I use a custom validator for this functionality. Add it to the > validation chain in the form model: > > $confirmPassword = new Zend_Form_Element_Password("password_confirm"); > $confirmPassword->setLabel('Confirm Password') > ->setDescription('Please re-enter your password.') > ->addValidator('PasswordConfirm') > ->addValidator('StringLength', false, array(5, 14)) > ->setAttribs(array('size'=>30)) > ->setRequired(true); > $this->addElement($confirmPassword); > > The custom validator goes in your apps lib. /library/MF/Validate/ > PasswordConfirm.php. > > This is some code i got off this list or on the Zend website that I > use. It assumes the password confirm field is called "password." I'm > sure a generic one could be made for all confirms. > > <?php > > require_once 'Zend/Validate/Abstract.php'; > > class MF_Validate_PasswordConfirm extends Zend_Validate_Abstract > { > const NOT_MATCH = 'notMatch'; > > protected $_messageTemplates = array(self::NOT_MATCH => 'Passwords do > not match.'); > > public function isValid($value, $context = null) > { > $value = (string) $value; > $this->_setValue($value); > > if (is_array($context)) { > if (isset($context['password']) && ($value == > $context['password'])) { > return true; > } > } elseif (is_string($context) && ($value == $context)) { > return true; > } > > $this->_error(self::NOT_MATCH); > return false; > } > } > > Haven't tried the Dojo password box yet but looks cool. > > EH > > > On Jan 5, 2009, at 12:14 PM, webPragmatist wrote: > >> Is it possible to pass the POST variable(s) once instead of twice >> when using the identical validator? >> >> What I have is a method in a model that checks a param which is >> passed when the form is generated in the controller. Then the >> controller (if the request is post) runs isValid($_POST). >> >> This works fine I just wish there was a way to access the post >> variable from the same $_POST array that is sent using isValid >> instead of passing variables twice to the form object (model). >> >> public function getAccountCreateForm($postPass = null) >> { >> // Add a password form element >> $password = new >> Zend_Dojo_Form_Element_PasswordTextBox('password'); >> $password->setLabel('Password:') >> ->setRequired(true) >> ->setTrim(true) >> ->setInvalidMessage('Please provide a valid >> password'); >> $form->addElement($password); >> >> // Add a confirm password form element >> $confirmPassword = new Zend_Dojo_Form_Element_PasswordTextBox( >> >> 'confirmPassword'); >> $confirmPassword->setLabel('Confirm Password:') >> ->setRequired(true) >> ->setTrim(true) >> ->setInvalidMessage('Please provide a valid >> password') >> ->addValidator('identical', >> true, >> array($postPass)); >> $form->addElement($confirmPassword); >> } >> >> View this message in context: Zend_Form / Identical Validator and >> comparing form fields >> Sent from the Zend Framework mailing list archive at Nabble.com. > > > -- View this message in context: http://www.nabble.com/Zend_Form---Identical-Validator-and-comparing-form-fields-tp21295103p21296134.html Sent from the Zend Framework mailing list archive at Nabble.com.