【问题标题】:how to read selected radio button value in Grails?如何在 Grails 中读取选定的单选按钮值?
【发布时间】:2011-06-29 06:21:45
【问题描述】:

我有一个如下所示的 GSP 页面。要求就像将显示一个报告列表 - 用户可以选择一个报告并可以将报告导出到 excel。

如何读取选中的单选按钮并将选中的值作为“参数”传递?

<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}]">

【问题讨论】:

    标签: grails radio-button


    【解决方案1】:

    我建议使用单选按钮组。而不是使用 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,您将收到所选报告。

    【讨论】:

    • &lt;g:link ...&gt;Export To Excel&lt;/g:link&gt; 将作为我的提交按钮!
    • 在你的情况下,我会更容易为你的表单使用提交按钮。否则,就像 splix 说的,你必须使用 java 脚本。
    【解决方案2】:

    &lt;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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-28
      • 1970-01-01
      • 2012-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多