我创建了一个zend表单。我添加了一些元素。我已经在所有元素中放置了validate属性,但验证没有成功。 这是我的代码
/* Form Elements & Other Definitions Here ... */
$this->setMethod('post');
$this->addElement('text', 'email', array(
'required' => true,
'filters' => array('StringTrim'),
'validators' => array(
'EmailAddress',
)
));
// Add the comment element
$this->addElement('textarea', 'comment', array(
// 'label' => 'Please Comment:',
'required' => true,
'validators' => array(
array('validator' => 'StringLength', 'options' => array(0, 20))
)
));
// Add a captcha
$this->addElement('captcha', 'captcha', array(
//'label' => 'Please enter the 5 letters displayed below:',
'required' => true,
'captcha' => array(
'captcha' => 'Figlet',
'wordLen' => 5,
'timeout' => 300
)
));
// Add the submit button
$this->addElement('submit', 'submit', array(
'ignore' => true,
'label' => 'Sign Guestbook',
));
// And finally add some CSRF protection
$this->addElement('hash', 'csrf', array(
'ignore' => true,
));
在锻炼中甚至没有一个验证。在我看来,我只是echo
表单对象。有人会告诉我,我错在哪里吗?
答案 0 :(得分:4)
Zend_Form
应该验证您在服务器端的输入。要使用它,您需要以某种方式将数据发送到服务器,然后调用$form->isValid($data)
。
简单的方法就是提交表单,并验证操作中的数据,有一些很好的教程,例如这个:http://akrabat.com/zend-framework-tutorial/。
如果您想利用验证器,但仍想在提交表单之前获得一些验证反馈,您也可以通过Ajax发送数据。以下教程告诉您使用jQuery的一个很好的方法:http://www.zendcasts.com/ajaxify-your-zend_form-validation-with-jquery/2010/04/。我跟着它,非常好。
在任何情况下,请记住验证始终在服务器端运行。
希望有所帮助,