0

forms.iniファイルに次のコードがありますが、機能していません(レンダリングされたフォームは引き続きデフォルトのDtDdデコレータを使用しています)。

incident.elements.ticket_number.type = "text"
incident.elements.ticket_number.options.label = "Ticket Number"
incident.elements.ticket_number.options.required = true
incident.elements.ticket_number.decorators.elements.decorator = "ViewHelper"
incident.elements.ticket_number.decorators.list_item.decorator = "HtmlTag"
incident.elements.ticket_number.decorators.list_item.options.tag = "li"
incident.elements.ticket_number.decorators.label.decorator = "Label"

出力の表示:

<dt id="ticket_number-label">
    <label for="ticket_number" class="required">Ticket Number</label>
</dt>
<dd id="ticket_number-element">
    <input type="text" name="ticket_number" id="ticket_number" value="">
</dd>

しかし、私はそれを見せたい:

<li>
    <label for=...>Ticket Number</label>
    <input type="text" name="ticket_number" id="ticket_number" value="">
</li>

私はここで何を間違っているのですか?

4

1 に答える 1

1

要素のデコレータも追加する必要があると思いますoptions

以下があなたのために働くかどうか見てください:

incident.elements.ticket_number.type = "text"
incident.elements.ticket_number.options.label = "Ticket Number"
incident.elements.ticket_number.options.required = true
incident.elements.ticket_number.options.decorators.viewhelper.decorator = "ViewHelper"
incident.elements.ticket_number.options.decorators.label.decorator = "Label"
incident.elements.ticket_number.options.decorators.errors.decorator = "Errors"
incident.elements.ticket_number.options.decorators.description.decorator = "Description"
incident.elements.ticket_number.options.decorators.htmltag.decorator = "HtmlTag"
incident.elements.ticket_number.options.decorators.htmltag.options.tag = "li"

<label>また、タグもタグにラップされるように、デコレータの順序を少し変更したことに注意してください<li>。ラベルがHtmlTagの後にある場合、入力の前にラベルが追加されることがわかりましたが、ラップされていませんでした<li>

また、各フォーム要素のデコレータを指定する必要があります。そうしないと、デフォルトのフォームデコレータが使用されます。上記の仕様をデフォルトのデコレータとして設定できますが、ボタン/送信およびファイル入力用の特別なデコレータも必要になります。

于 2011-12-28T18:43:10.280 に答える