向表单添加集合字段,可以呈现多个“原型”

时间:2015-04-22 21:10:56

标签: javascript forms symfony

我的代码设置如下例所示:http://symfony.com/doc/current/cookbook/form/form_collections.html

唯一不同的是,我通过选择框的更改事件(包含一些标记类型)添加标记字段,而不是单击“添加标记”链接。

我想添加的是根据所选标记类型添加不同表单字段的选项。 (这就是我使用change事件而不是add-tag链接的原因)

例如:

如果我选择标签类型'simple',则应该呈现一个表单字段,即'fieldName'

如果我选择标签类型'高级',则应呈现两个表单字段,即'fieldName1'和'fieldName2'

我该怎么做?我应该定义多个原型吗?还是有更聪明的方法?

1 个答案:

答案 0 :(得分:0)

我解决了这个问题:

当我更改选择框的值时,ajax调用的类型为" post"。 该调用在我的控制器中执行一个动作。该动作将再次构建相同的形式。

PRE_SET_DATA事件监听器将负责通过表单修饰符函数(基于选择框中选择的值)将表单字段添加到主表单。

最后但并非最不重要:POST_SUBMIT事件监听器调用相同的form-modifier函数以避免"表单不能包含任何额外字段"错误。