1

现在,我有包装在列表项中的Zend表单元素。表单正在验证或咳嗽错误,因为它应该。但是我想申请一个类到违规元素的列表项(但是只有到列表项的违规元素)。例如:如何将错误的类应用于Zend Framework装饰器?

此领域具有有效的输入

<li> 
    <input type="text" name="address2" id="address2" value="" size="25"> 
</li> 

但是这一次不

<li class="error"> 
    <input type="text" name="address2" id="address2" value="" size="25"> 
</li> 

我可以看到这样做是延长的Zend_Form_Element,并覆盖isValid方法(的唯一途径)和然后扩展我需要的所有从Zend_Form_Element派生出来的类。

必须有更好的方法。

对不对?

我错过了什么?

THANKS

回答

1

我想你最好修改基于表单元素的状态HtmlTag装饰。

$tag = $element->getDecorator('HtmlTag'); 
$tag->setOption('class', 'error'); 

在验证时可能会调用多个不同的地方。您可以在您的视图中执行此操作,或者在构建表单时检测每个字段中是否存在错误。

您可能还想研究创建自己的装饰器。

这些帖子herehere在覆盖Zend_Form装饰器过于复杂的世界方面做得很好。

+0

谢谢。按照你的建议去做:在表单中,检查'$ this-> form-> getElement('foobar') - > getErrors()'。 – PartialOrder 2010-10-29 21:20:24