2013-07-10 23 views
0

該行始終返回true,即使用戶名輸入爲空

if ($this->getRequest()->isPost() && $form->isValid($this->getRequest()->getPost())) {

我的形式輸入用戶名看起來像這樣

<?php 
$this->addElement(new Zend_Form_Element_Text('username')); 
$this->addElement('text','username', 
       array('class' => 'input-large', 
       'value' => $this->user_login, 
       'attribs' => array('disabled' => 'disabled') /// it can be activated by button in view 
)); 

    $username = new Zend_Form_Element_Text('username'); 
    $username->addValidator (new Zend_Validate_NotEmpty()); 
?> 

,但這樣的事情作品

$validator = new Zend_Validate_NotEmpty(); 
      $data = $_POST['username']; 
      if($validator->isValid($data)) { 

      echo 'sweet'; 

      }else { 

      echo 'bad'; 
      } 

回答

0

將元素設置爲需要而不是添加驗證:

$this->addElement('text','username', array(
    'class' => 'input-large', 
    'value' => $this->user_login, 
    'attribs' => array('disabled' => 'disabled'), 
    'required' => true 
)); 

的原因是表單元素具有的啓用是默認的「允許空」標誌,並與這個標誌,你的驗證將不會被使用。我解釋了這個問題的原因:Zend Framework notEmpty validator setRequired。設置所需的標誌會自動添加驗證程序並更改標誌。

+0

嘿,增加您的線路後,開始工作 ,但現在我加入像Alnum和EmailAddress的 一些新的驗證然後,我在輸入文字寫像「asasdasdasd」和isValid方法返回true – dewugje

+0

您可以編輯您的問題,包括你現在使用的代碼? –

+0

這是我的不好,一切工作正常與你的修復 thx非常多! – dewugje

相關問題