首页 > 解决方案 > 如何在使用远程链接 gsp 时将一个字段的值设置为参数

问题描述

我第一次使用 gsp,我需要在单击按钮时更新值。为此,我正在使用远程链接。

我有以下带有 id 的 textAreaupdate_${test.id}

<g:textArea name="test" id="update_${test.id}" value="${test?.number}" disabled="${readonly ? true : false}" />

我需要能够将参数的值设置required为 textArea 内的值。

<g:remoteLink action="updateTest" params="{required:\$('#update_${test.id}').val()}" update="updateOnClick" class="btn btn-default"><span class="icon-save"></span></g:remoteLink>

这显然是一种错误的做法。有人可以帮我解决这个问题。

标签: grailsgroovygsp

解决方案


以下示例使用 ajax 使用序列化将所有表单字段传递给控制器​​,您可以通过打印文本区域的值来选择您想要的操作,如下面的操作。

然后我们渲染一些文本来更新屏幕上的 div。

控制器

class TestStuffController {

    def index(){}

    def myAction() {
        println params.myTextArea
        render 'Updated'
    }
}

索引.gsp

<!DOCTYPE html>
<html>
<head>
    <meta name="layout" content="main">
    <script type="text/javascript">
        $( document ).ready( function() {
            $( '#myButton' ).on( 'click' , function (event) {
                $.ajax({
                    url: "${g.createLink( controller: 'testStuff', action: 'myAction')}",
                    type: "POST",
                    data: $( "form" ).serialize(),
                    success: function ( data ) {
                        $( '#myDiv' ).html( data );
                    },
                    error: function( j, status, eThrown ) { console.log( 'Error ' + eThrown ) }
                });
            });
        });
    </script>
</head>
    <body>
        <div>
            <div id="myDiv"></div>

            <g:form id="myForm">
                <g:textArea name="myTextArea" id="myTextArea" />
                <button type="button" name="myButton" id="myButton">Update</button>
            </g:form>
        </div>
    </body>
</html>

推荐阅读