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 回答