如何读取Grails中选定的单选按钮值?

时间:2011-06-29 06:21:46

标签: grails radio-button

我正在使用如下的GSP页面。该要求就像将显示一个报告列表 - 用户可以选择一个报告,并可以将报告导出到Excel。

如何阅读所选单选按钮并将所选值作为“params”传递?

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="layout" content="main" />
</head>
<body>
    <div class="nav">
        <span class="menuButton"><g:link class="create"
                action="excelExport" params="['id':{ radId.value}]">Export To Excel</g:link>
        </span>
    </div>
    <div class="body">
        <div class="message">Select the report and click 'Excel Export'</div>
    </div>
    <g:form method="post">
        <g:render template="displayUploadedReportsTemplate"
            model="['uploadedReports':uploadedReports]" />
    </g:form>

</body>
</html>

其中displayUploadedReportsTemplate是:

<tbody>
            <g:each in="${uploadedReports}" var="bbkRat">
                <tr>
                    <td valign="top"><g:radio name="radId"
                            value="${fieldValue(bean:bbkRat,field:'id')}" /></td>
                    <td valign="top"><label> ${fieldValue(bean:bbkRat,field:'cmpName')}
                    </label></td>
                    <td valign="top"><label> ${fieldValue(bean:bbkRat,field:'reportCreationDate')}
                    </label></td>

                    <%--<td valign="top">
                    <label> ${fieldValue(bean:bbkRat,field:'cmpName')}
                </label> 
                </td>

                --%>
                <tr>
            </g:each>

        </tbody>

如何将params值低于??

<g:link class="create"
                action="excelExport" params="['id':{ radId.value}]">

2 个答案:

答案 0 :(得分:2)

我建议使用单选按钮组。而不是使用g:readio标签,你可以用每个标签内的普通html输入标签替换它,例如

<input type="radio" name="myGroup" value="1" checked="checked" />
<input type="radio" name="myGroup" value="2" />
<input type="radio" name="myGroup" value="3" />

您已经在displayUploadedReportsTemplate周围定义了一个表单。因此,您需要在此表单中添加一个提交按钮,以及应该对其进行转移的操作,例如。

<g:form method="post" action="test">

在测试操作中,您可以打印params.myGroup,然后您将收到选定的报告。

答案 1 :(得分:0)

<g:link在服务器端处理,因此您无法在客户端使用它,您必须使用javascript。

就像是:

<a href="#" class="excelExport" onclick="doExport(); return false">
<script type="text/javascript">
function doExport() {
  var id= $('input:radio[name=radId]:checked').val();
  window.location = '${g.createLink(action:'excelReport')}?id=' + id;
}
</script>

ps我假设您使用的是jQuery