如果我在表单中插入表单,则"外部"表单中的提交按钮不再起作用。
简短的代码示例:
<f:form action="update" name="examples" object="{examples}" >
<f:for each="{examples}" as="example"
<f:form.textfield property="name" value="" />
<f:form.checkbox property="checked" value="1" checked="0" /><br />
<f:form action="delete" name="example" object="{example}" >
<f:form.submit value="delete" />
</f:form>
<f:form.submit value="update" />
</f:form>
基本上(这是我现实生活项目的极为简化的版本(,我希望能够更改TextField和复选框的值,然后将其传递给更新。每个循环仅生成多个条目,因此多个形式仅包含该特定对象的删除按钮,以便说话。我可以通过__IDENTITY解决这些对象,可以用它们旁边的按钮删除它们,这不是问题。
但是,如果我将其他表格和各自的提交按钮放入此表格中,则更新的提交按钮将不再起作用。
有什么解决方案吗?
表单内部的表单不起作用(也不是适当的html(。
更长的版本回答您没有提出的问题:要在此处实现目标,请使用f:link.action
用{example}
对象作为参数创建指向delete
控制器操作的链接。然后样式的该链接看起来像一个按钮。
与typo3或流体完全无关,您应该知道不允许筑巢形式。
但是,至少可以使用单个表格使您的代码编辑部分有效:
<f:form action="update" name="examples" object="{examples}" >
<f:for each="{examples}" as="example" iteration="i">
<f:form.textfield property="{i}.name"/>
<f:form.checkbox property="{i}.checked" value="1"/>
</f:for>
<f:form.submit value="update"/>
</f:form>
使用此设置,由于您需要一个执行两件事的提交按钮,因此也无法进行删除操作:
请求
delete
操作:<f:form.button type="submit" name="action" value="delete">Delete</f:form.button>
在实体上指向地址:
<f:form.button type="submit" name="example" value="{example}">Do something with {example.title}</f:form.button>
您应该添加一个单独的视图,以编辑单个example
对象。然后,当前视图成为具有指向该编辑视图的链接的列表。在该视图中,您的表格object
成为一个example
,它允许您为每个action
添加两个提交按钮。