【发布时间】:2012-01-09 03:29:37
【问题描述】:
我正在尝试使用 symfony2 中的 Twig 自定义表单布局。我的目标是渲染一个看起来像这样的无线电输入......
<label class=" required">Label name</label>
<span class="form-radio">
<input type="radio" name="album_has_subalbums_1" /> Yes
</span>
<span class="form-radio">
<input type="radio" name="album_has_subalbums_0" /> No
</span>
我已经覆盖了我的自定义表单主题中的radio_widget 块,如下所示
{% block radio_widget %}
{% spaceless %}
<span class='form-radio'>
<input type="radio" {{ block('widget_attributes') }}{% if value is defined %} value="{{ value }}"{% endif %}{% if checked %} checked="checked"{% endif %} />
</span>
{% endspaceless %}
{% endblock radio_widget %}
但是,这会呈现以下标记:
<label class=" required">Label name</label>
<span class="form-radio">
<input type="radio" id="album_has_subalbums_1" name="album[has_subalbums]" required="required" value="1">
</span>
<label for="album_has_subalbums_1" class=" required">Yes</label>
<span class="form-radio">
<input type="radio" id="album_has_subalbums_0" name="album[has_subalbums]" required="required" value="0">
</span>
<label for="album_has_subalbums_0" class=" required">No</label>
基本上,对于每个单选输入元素,它都会创建一个标签来识别它的值是“是”还是“否”。我正在使用预先存在的设计,因此无法轻松调整 html 标记。
如何防止单选输入将选择文本生成为标签?我知道它在内部调用了 field_label 块,但正如你所见,我的 radio_widget 没有引用它,所以我对如何防止这种行为有点迷茫。
编辑:
明确地说,我想要与我的第一个示例相同的结构...我省略了名称和值属性等,但显然它只是为了演示目的。
【问题讨论】:
标签: forms radio-button symfony twig