2011-04-21 88 views
0

我正在創建一個Zend表單。zend驗證器不工作

當我提交表單,然後錯誤消息不顯示。看起來驗證器從未被觸發。這是我的代碼:

$ form = new Zend_Form;

$form->setMethod('POST') 
    ->setAttrib('Name','pwdfrm')  
     ->setAttrib('Id','pwdfrm'); 

    $email = new Zend_Form_Element_Text('email'); 
    $email->setLabel('Email :') 
     ->setDecorators($this->textbox) 
     ->setRequired(true) 
     ->addValidator('NotEmpty', true) 
     ->addErrorMessage('In valid'); 

      $form->addElements(array($email, 
       new Zend_Form_Element_Submit('submit',array(
        'decorators' => $this->buttonDecorators, 
        'Label'=>'Submit', 
      )), 
      )); 

    $form->setDecorators(array( 
    'FormElements', 
    array('HtmlTag', array('tag' => 'table','align'=>'center','class'=>'tbcss','width'=>'100%','border'=>1)), 

'Form', 
    )); 

$ this-> view-> assign('form',$ form);
$ this - > _ helper-> layout-> disableLayout();

如果($請求 - > isPost())
{
的print_r($請求 - >的getPost());
}

這是我的裝飾:

公共$文本框=陣列(

'ViewHelper',  
    'FormElements', 
    array(array('data' => 'HtmlTag'),array('tag' => 'td', 'class' => 

'元素', '寬度'=> '43%','VALIGN '=>' 頂部 ')),

'Errors', 

array(array('closeLabel' => 'HtmlTag'),array('tag' => 'td','closeOnly' => true, 'placement' =>'prepend')),  
    'Label', 

陣列(陣列(' openLabel '=> 'HtmlTag'),陣列(' 標籤'=>'td',>'openOnly'=> true,'align'=>'right','valign'=>'top','width'=>'15%')),

array(array('row' => 'HtmlTag'), array('tag' => 'tr')), 
); 

公共$ buttonDecorators =陣列(

'ViewHelper', 
    'Errors', 
    'FormElements', 
    array('HtmlTag', array('tag' => 'td','align'=>'center','colspan'=>'2')), 
    array(array('row' => 'HtmlTag'), array('tag' => 'tr')), 
); 

誰能幫助我PLZ。

+1

我沒有看到你調用的isValid($ _ POST)。 – akond 2011-04-21 06:57:08

回答

1

我想你錯過

// Check method/data validitiy 
    if(!$form->isValid($this->getRequest()->getPost())) { 
     return; 
    } 

好運:-)