在grails中,我正在尝试获取已选中复选框的列表。 我有复选框列表,但我的问题是两个:
1)当我点击列表中的单个项目并单击提交时 - 我只获得值" on"。如果我点击多个复选框项,我会得到这样的结果:
function dataURItoBlob(dataURI) {
var binary = atob(dataURI.split(',')[1]);
var array = [];
for(var i = 0; i < binary.length; i++) {
array.push(binary.charCodeAt(i));
}
return new Blob([new Uint8Array(array)], {type: 'image/jpeg'});
}
2)。我没有得到列表或选中项目的名称。
以下是gsp中复选框的代码:
[Ljava.lang.String;@5a37f9f7
这是控制器代码(groovy):
<g:form action="submitForm">
<ul class="columns3">
<g:each in="${name}" var="fileName" >
<g:checkBox value="${false}" name="${ 'fileName'}" /> ${fileName.replaceFirst(~/\.[^\.]+$/, '')}<br>
</g:each>
</ul>
<br>
<br>
<g:submitButton name="Submit"/>
</g:form>
我尝试将id绑定到复选框,但我一直收到异常错误。
你能给予任何帮助我真的很感激;我是grails的新手。
ironmantis7x
答案 0 :(得分:2)
您可以使用漂亮的命令对象。为此,首先创建一个具有布尔字段的RequestCO类。
class RequestCO {
boolean isChecked;
String name;
}
和
class RequestParentCO {
List<RequestCO> requestCOs = [].withLazyDefault { new RequestCO() }
}
现在,您只需将所有请求绑定到您的操作中的RequestParentCO:
def submitForm(RequestParentCO parentCO) {
println parentCO.requestCOs.findAll { it.isChecked }
}
这将为您提供所有选中的复选框结果。
<强> GSP 强>
<g:form action="process">
<ul class="columns3">
<g:each in="${["one", "two", "three"]}" var="fileName" status="i">
<g:hiddenField name="requestCOs[${i}].name" value="${fileName}"/>
<g:checkBox name="requestCOs[${i}].isChecked"/> ${fileName}<br>
</g:each>
</ul>
<g:submitButton name="Submit"/>
答案 1 :(得分:1)
这样,
def submitForm() {
def values = request.getParameterValues("fileName")
//here values contains string array which are selected in checkbox
}
答案 2 :(得分:0)
你可以使用request.getParameterValues(“fileName”)方法,这将给出字符串数组中的选中复选框