验证中的问题表格a in zend

时间:2013-07-29 12:16:17

标签: forms validation zend-framework

我正在使用zend表单并尝试验证客户端验证。我的代码就像:

$this->addElement('text', 'email', array(
    'label' => 'Email:',
    'required' => true,
    'class' => 'span12',
    'attribs' => array(
        'required' => true,
        'pattern'=> "^[A-Za-z0-9._]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$"
    )
));

$this->setAttrib('id', 'lead_form_creation');
$this->addElement('text', 'name', array(
    'label' => 'Name:',
    'required' => true,
    'class' => 'span12',
    'attribs' => array(
        'required' => true,
        'pattern' => '[a-zA-Z]{4,}'
    )

));
$this->addElement('text', 'phone', array(
    'label' => 'Phone:',
    'required' => true,
    'class' => 'span12',
    'attribs' => array(
        'required' => true,
        'pattern' => '\d{4,}'
        )
    ));

通过以上三个字段,我可以创建一个表单。我的代码也验证了以上三个字段。但每当我写一些有效的电子邮件地址并按Tab键时,名称字段和电话号码字段同时显示为红色。但是用户的观点应该只是名称字段。然后,如果名称未验证并按Tab键,则名称字段s以及电话字段应显示错误。 请告诉我在attrbs属性或其他任何地方我是否需要提及的内容? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

代码中的错字(属性应该是属性):

$this->addElement('text', 'email', array(
    'label' => 'Email:',
    'required' => true,
    'class' => 'span12',
    'attributes' => array(
        'required' => true,
        'pattern'=> "^[A-Za-z0-9._]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$"
    )
));

$this->setAttrib('id', 'lead_form_creation');
$this->addElement('text', 'name', array(
    'label' => 'Name:',
    'required' => true,
    'class' => 'span12',
    'attributes' => array(
        'required' => true,
        'pattern' => '[a-zA-Z]{4,}'
    )
));

$this->addElement('text', 'phone', array(
    'label' => 'Phone:',
    'required' => true,
    'class' => 'span12',
    'attributes' => array(
        'required' => true,
        'pattern' => '\d{4,}'
        )
  ));