以下代码段不会提示“密码不匹配”消息。
$password = new Zend_Form_Element_Password('password');
$password->setDecorators($elementDecoration);
$password->setLabel('Password')
->addFilter('StripTags')
->addFilter('StringTrim');
/ *密码确认 - 只需将令牌部分设置为密码字段名称* /
$confirmPswd = new Zend_Form_Element_Password('conf_password');
$confirmPswd->setDecorators($elementDecoration);
$confirmPswd->setLabel('Confirm Password:');
$confirmPswd->setLabel('Confirm Password:');
$confirmPswd->setAttrib('size', 35);
$confirmPswd->setRequired(true);
$confirmPswd->addValidator('Identical', false, array('token' => 'password'));
$confirmPswd->addErrorMessage('The passwords do not match');
答案 0 :(得分:0)
检查以下网址以获取确认密码。
http://blog.justin.kelly.org.au/creating-a-simple-password-confirmation-field/
这对你很有帮助。
另请查看以下链接:
同时检查:
答案 1 :(得分:0)
我在电子邮件地址上使用相同的验证器。要将其添加到表单,我使用以下代码:
$this->addElement('text', 'confirm_email',
array(
'label'=>'Confirm Email Address',
'required'=>true,
'filters'=>array('StringTrim'),
'validators'=>array(array('EmailAddress'),
array('NotEmpty', true, array('messages'=>'Confirm email address is required.')),
array('Identical', false, array('token'=>'email', 'messages'=>'The email addresses provided do not match.'))),
'class'=>'thirdCol'));
我使用flash messenger显示错误
foreach ($form->getErrors() as $error) {
$this->flashMessenger->addMessage($error);
}
如果您在提交表单时尝试获取javascript警报,我认为您必须自己编写代码。在您的表单中,使用类似
的内容$this->setAttrib('onsubmit', 'return checkRegistration();');
并且checkRegistration函数是对某些控制器/操作的ajax调用,该控制器/操作返回要警告的错误。如果你想返回json或类似的东西
$this->getHelper('layout')->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
将禁用布局和视图,以便返回所有返回的内容。
希望这有帮助。