Php Zend_表单错误消息

Php Zend_表单错误消息,php,zend-framework,zend-form-element,Php,Zend Framework,Zend Form Element,我有一个zend_表单的自定义标记,我尝试将css类(class=“hasErrors”)设置到输入字段。我的渲染表单元素如下所示: <div id="teamname-element" class="formRow"> <input type="text" name="teamname" id="teamname" value="" placeholder="Teamname"> </div> <div id="teamname-elemen

我有一个zend_表单的自定义标记,我尝试将css类(class=“hasErrors”)设置到输入字段。我的渲染表单元素如下所示:

<div id="teamname-element" class="formRow">
    <input type="text" name="teamname" id="teamname" value="" placeholder="Teamname">
</div>
<div id="teamname-element" class="formRow">
    <input type="text" name="teamname" id="teamname" value="" placeholder="Teamname">
    <ul class="errors">
        <li>Your teamname is to short!</li>
    </ul>
</div>
$this->addElement(new Nut_Form_Element_Text('teamname', array(
    'Label'      => 'Teamname',
    'validators' => array( array('StringLength', FALSE, array(1, 25)), $TeamRegex),
    'filters'    => array('StringTrim', 'StripTags'),
)));

这里我们创建一个扩展Zend_form的form类。我们重写isValid()方法。如果hasErrors()方法返回true,我们循环遍历表单->元素并添加一个“error”类。我们还使用getAttrib()方法检查类属性是否已经存在,如果已经存在,则使用空格来分隔“error”类

class MyForm extends Zend_Form
{
    public function isValid($data)
    {
        $valid = parent::isValid($data);

        foreach ($this->getElements() as $element) {
            if ($element->hasErrors()) {
                $oldClass = $element->getAttrib('class');
                if (!empty($oldClass)) {
                    $element->setAttrib('class', $oldClass . ' hasError');
                } else {
                    $element->setAttrib('class', 'hasError');
                }
            }
        }

        return $valid;
    }
}

现在,当您调用isValid方法时,它将自动向未通过验证的任何字段添加一类错误。

这里我们创建一个扩展Zend_form的form类。我们重写isValid()方法。如果hasErrors()方法返回true,我们循环遍历表单->元素并添加一个“error”类。我们还使用getAttrib()方法检查类属性是否已经存在,如果已经存在,则使用空格来分隔“error”类

class MyForm extends Zend_Form
{
    public function isValid($data)
    {
        $valid = parent::isValid($data);

        foreach ($this->getElements() as $element) {
            if ($element->hasErrors()) {
                $oldClass = $element->getAttrib('class');
                if (!empty($oldClass)) {
                    $element->setAttrib('class', $oldClass . ' hasError');
                } else {
                    $element->setAttrib('class', 'hasError');
                }
            }
        }

        return $valid;
    }
}
现在,当您调用isValid方法时,它将自动向任何未通过验证的字段添加一类错误