1

现在,我将 Zend 表单元素包装在列表项中。表单正在验证或纠正错误。但是我想在验证失败时将一个类应用于违规元素的列表项(但仅适用于违规元素的列表项)。例子:

该字段具有有效输入

<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 派生的所有类,我需要为我的表单。

必须有更好的方法。

正确的?

我错过了什么?

谢谢

4

1 回答 1

1

我认为您最好根据表单元素的状态修改 HtmlTag 装饰器。

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

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

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

此处此处的这些帖子很好地涵盖了 Zend_Form 装饰器的过于复杂的世界。

于 2010-10-29T15:32:45.423 回答