0

Zend_Form 验证是否需要 javascript?如果它确实在关闭 JS 时会发生什么,它会回退到例如正常的 PHP 验证。

抱歉,我在文档中找不到任何菜鸟问题。

干杯。

编辑:

这是我的表格:

class Application_Form_Test extends Zend_Form {
    public function init() {}
    public function testForm() {
        $email = $this->createElement('text', 'email');
        $email->setLabel('E-Mail Address');
        $email->setRequired(true);
        $email->addFilter('StripTags');
        $email->addErrorMessage('an email address is required');
        $email->addValidator('NotEmpty', true);
        $email->addValidator('EmailAddress');

        $submit = $this->createElement('submit', 'submit', array('label'=>'Submit'));
        $this->addElements(
            array(
                $email, $submit
            )
        );
        return $this;
    }
}

这是我的控制器:

class testController extends Zend_Controller_Action {
    public function init() {
        /* Initialize action controller here */
        if(!Zend_Auth::getInstance()->hasIdentity()) {  
            $this->_redirect('login/index');  
        }
        $this->_acl = new MyAcl(Zend_Auth::getInstance()->getIdentity());               
    }
    public function indexAction() {
        $form = new Application_Form_Test();
        $form = $form->testForm();
        $form->setAction('/dev/public/test/update')->setMethod('post');
        $this->view->form = $form;
    }
    public function updateAction() {
        $form = new Application_Form_Test();
        if($this->getRequest()->isPost()){
            $formData = $this->_request->getPost();
            if($form->isValid($_POST)){
                die('i seem to be valid....');
            }
            else{
                die(var_dump($_POST));
            }
        }   
    }
}

似乎验证失败。有任何想法吗?

4

1 回答 1

2

不,Zend_Form 验证器(我的意思是验证您使用 addValidator 在表单元素上添加的过滤器,如下所示:

 $element->addValidator ( new Zend_Validate_StringLength ( array ('max' => 5 ) ));

都是服务器端处理的。所以你不必担心javascript。

如果需要,您可以添加 javascript 验证器客户端以避免返回服务器,但这是另一回事。

于 2011-07-04T10:16:56.910 回答