我在Symfony2中使用FormBuilder,并且有一个实体字段,我使用选项列表显示。它看起来很好,但是长边,我想根据它们的分组添加css来缩进项目,这样用户就可以更容易地看到组的变化。
我可以使用jQuery根据选项的值添加一个类,但是如果我直接在表单的类中设置css类,我觉得它会更干净。有谁知道如何为每个选项设置一个类,而不是所有选项?我可以在css类的实体中添加一个字段,这是我设置类的首选方法,我希望这可以在formbuilder中以某种方式添加为attr。
现在我生成的html看起来像这样:
<form name="filter" method="post" action=""><div id="filter">
<label for="choices">Choices</label>
<select id="choices" name="filter[choices][]" class="chosen-select" multiple="multiple">
<option value="100">A</option>
<option value="105">B</option>
<option value="110">C</option>
<option value="200">D</option>
<option value="205">E</option>
<option value="215">F</option>
<option value="300">G</option>
<option value="400">H</option>
<option value="405">H</option>
<option value="430">J</option>
<option value="450">K</option>
<option value="500">L</option>
<option value="502">M</option>
<option value="504">N</option>
</select>
</div>
<div>
<button type="submit" id="search" name="filter[search]">Filter</button>
</div>
</form>
我需要调整所有选项标记以包含一个类,但该类将更改并与该值相关。我想渲染一下:
<option value="100" class="100">A</option>
<option value="105" class="100">B</option>
<option value="110" class="100">C</option>
<option value="200" class="200">D</option>
<option value="504" class="500">N</option>
现在我正在思考它,也许最简单的方法是使用jQuery查找每个选项的值并根据每个值添加一个类attr,但是我的逻辑与我的视图混合在一起。如果可能的话,我想在formbuilder中添加类,但我需要根据选项的值更改类。我的css将缩进下拉菜单中的项目,以便在视觉上容易识别组。
答案 0 :(得分:0)
您可以使用自定义表单主题执行此操作。例如,您可以定义自定义块form_my_widget
并使用它来呈现您的选择列表。
有关自定义区块的更多信息 - http://symfony.com/doc/current/cookbook/form/form_customization.html
在自定义主题中,您可以将class
属性应用于各个option
代码。