2

我正在使用 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,则名称字段和电话字段应显示错误。请让我知道我是否必须在attrbs属性中或其他任何地方提及任何内容?提前致谢。

4

1 回答 1

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,}'
        )
  ));
于 2013-07-29T12:27:53.117 回答