1

現在、Zendフォーム要素をlist-itemsでラップしています。フォームは、エラーを検証または咳き込んでいます。ただし、検証に失敗した場合は、問題のある要素のリストアイテム(ただし、リストアイテムの問題のある要素のみ)にクラスを適用したいと思います。例:

このフィールドには有効な入力があります

<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 に答える