2013-03-19 112 views
1

下面的代碼段不會提示「密碼不匹配」消息。zend密碼確認密碼匹配不起作用

$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

我上面粘貼的代碼片段只是從那個博客中拿出來的,想的是,我想在網上顯示自定義消息。這個網站沒有提供這個細節 – Bharanikumar 2013-03-19 07:25:12

+0

我希望你已經發布了這個博客的代碼。你有沒有試過這個代碼。這將工作正常。 – 2013-03-19 07:29:44

+0

是的,我剛剛使用該代碼 – Bharanikumar 2013-03-19 07:33:21

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')); 

我用閃光信使如果你想獲得一個JavaScript警告表單提交時顯示錯誤

foreach ($form->getErrors() as $error) { 
       $this->flashMessenger->addMessage($error); 
      } 

,我認爲你必須自己編寫代碼。在您的形式,使用類似

$this->setAttrib('onsubmit', 'return checkRegistration();'); 

而且具有checkRegistration功能是一個AJAX調用一些控制器/動作返回要驚動了錯誤。如果你正在尋找返回JSON或類似

$this->getHelper('layout')->disableLayout(); 
$this->_helper->viewRenderer->setNoRender(true); 

將關閉佈局和視圖,以便東西是所有返回的是你重複一下。

希望這會有所幫助。