我有一个基本结构:
<g:form>
actionSubmit
</g:form>
<g:form>
actionSubmit
</g:form>
<g:each in personList - variable=person>
<tr>
<td><g:checkBox name="personList" value="${person.id}" checked="${false}"/></td>
<td>
<g:form>
actionSubmit
</g:form>
</td>
</tr>
</g:each>
这些表单中的每一个都依赖于personList复选框数组作为变量。我的代码的先前版本将整个div包装在一个表单中,当我在表格中添加第三个表单时,该表单起作用但是引起了问题。
如何通过所选复选框?我有一个选中所有框的复选框 - 我只需要为所选框的数组分配一个变量/ hiddenField。
谢谢!
修改
拥有单个表单的问题是我在每一行中都有一个列能够将元素添加到一对多关系中。如果我可以通过相应的动作提交传递person.id(所以如果我在第2行点击actionSubmit,我想传递第2行的person.id),那么这是小菜一碟。
但是,每当我尝试绑定人员ID时,我最终会得到一组所有人ID。所以我认为解决这个问题的唯一方法是使用单独的表格。
<td>
<div id="reportsToResultsDiv2_${person.id}" class="reportsToResultsDiv2_${person.id}">
<g:select id="reportsTo" name="reportsTo.id" from="${rtResults}" optionKey="id" value="" />
<g:actionSubmit action="addReportsTo" value="Add" params="[c_id:'${person.id}']"/>
</div>
</td>
答案 0 :(得分:0)
单个表单和几个g:actionSubmit按钮是否适用于您?
生成一个映射到特定操作的提交按钮,该按钮允许您在一个表单中拥有多个提交按钮。 - http://grails.org/doc/latest/ref/Tags/actionSubmit.html
<g:form controller="book">
<g:checkBox name="personList" value="${person.id}"/>
<tr><td>
<g:actionSubmit action="action1" value="firstButton"/>
</td></tr>
<tr><td>
<g:actionSubmit action="action2" value="secondButton"/>
</td></tr>
</g:form>
答案 1 :(得分:0)
我不认为checkbox支持值并以这种方式检查。 也许这就是你想要的?
<g:each in="${personList}" var="person>
<g:form controller="person" action="doSomething">
<g:hidden name="personId" value="${person.id}"/>
<g:checkBox name="superFly" checked="${person.superFly}"/>
</g:form>
</g:each>