$this->addElement('text', 'projected-start', array(
'required' => false,
'validators' => array (
array('date', false, array('MM/dd/yyyy'))
),
'label' => 'Projected Start:',
'class' => 'form-date'
));
我正在扩展Zend_Form来创建一个新的自定义表单。我尝试使用上面的代码验证日期,但它只是不起作用,当我输入无效输入时没有显示任何内容。对此有何帮助?
编辑:
class Application_Form_CreateProject extends Zend_Form
{
public function init()
{ ... }
}
这是扩展表单的开始。
$form = new Application_Form_CreateProject();
$request = $this->getRequest();
if ($request->isPost()) {
if ($form->isValid($request->getPost())) {
echo "true";
}
}
$this->view->form = $form;
那是控制器
echo $this->form->setAction($this->url());
那是视图
答案 0 :(得分:2)
尝试此操作后会得到什么:
$f = new Zend_Form();
$f->addElement('text', 'projected-start', array(
'required' => false,
'validators' => array (
array('date', false, array('MM/dd/yyyy'))
),
'label' => 'Projected Start:',
'class' => 'form-date'
));
$data = array(
'projected-start' => '13/03/2011'
);
var_dump( $f->isValid( $data ) );
var_dump( $f->getErrors() );
die;
答案 1 :(得分:1)
你可以试试这个
$this->addElement('text', 'projected-start', array(
'required' => false,
'validators' => array (
new Zend_Validate_Date(array('format' => 'MM/dd/yyyy'))
),
'label' => 'Projected Start:',
'class' => 'form-date'
));