2015-04-22 18 views
0

我有我的代碼設置就像這個例子:http://symfony.com/doc/current/cookbook/form/form_collections.html收集字段添加到形式,也可以使多個「原型」

唯一不同的一點是,我經歷的變化事件添加標籤領域選擇框(其中包含幾個標籤類型),而不是點擊「添加標籤」鏈接。

我喜歡添加的是根據選擇的標籤類型添加不同表單域的選項。 (這就是爲什麼我與變化事件,而不是附加標籤環節的工作)

例如:

如果我選擇標籤式「簡單」,一個表單字段應該呈現,被'字段名」

如果我選擇標籤類型‘先進’,兩個表單字段應該被渲染,被‘fieldName1’和‘fieldName2’

我怎樣才能做到這一點?我應該定義多個原型嗎?還是有更聰明的方法?

+0

您可以使用JavaScript刪除/隱藏您不想要的字段,然後將它們添加到表單中。 –

+0

感謝您的評論。我會試試:) – mattyh88

回答

0

我解決了它這樣的:

當我改變選擇框的值,Ajax調用由類型「後」的。 該調用在我的控制器中執行一個動作。該行動將再次構建相同的表單。

PRE_SET_DATA事件偵聽器將負責通過表單修改函數(基於選擇框中的選定值)向主表單添加表單字段。

最後但並非最不重要的是:調用相同的form-modifier函數以避免「表單不能包含任何額外字段」錯誤的POST_SUBMIT事件偵聽器。

相關問題