1

我在谷歌上搜索了很长时间,但我找不到解决这个问题的方法。我正在尝试从我的 Groovy 控制器中的 GSP 文件访问 JavaScript 变量,但我不知道如何执行此操作。

例子:

//JavaScript stuff
<script>
    function validateForm(){
         var ret = false
    }
</script>

//Groovy controller stuff
def myAction = {
    println params.ret
}

我如何实现类似的目标?

4

2 回答 2

2

将变量传递给控制器​​的两种方法:

  1. 阿贾克斯
  2. 表单提交

阿贾克斯

  • 采用remoteFunction

    ${remoteFunction(controller: 'actionsController' , action: 'implementNewPixel', params: '\'ret=\' + ret')} 
    
  • 使用 Ajax

    var ret = false;
    jQuery.ajax({
        url: "${createLink(controller: 'actionsController', action: 'implementNewPixel')}",
        data: "ret=" + ret,
        success: function (data) {
            alert(data);
        }
    });
    

等等

表单提交

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
    var ret;
    function validateForm(){
        ret = false;
    }

    jQuery(function () {
        jQuery("[name='jftForm']").submit(function () {
            jQuery("[name='ret']").val(ret);
        });
    });
</script>

<g:form name="jftForm" controller="actionsController" action="implementNewPixel">
    ...
    <g:hiddenField name="ret" value=""/>
    <g:submitButton name="submit" value="Submit"/>
</g:form>
于 2013-08-07T06:19:06.687 回答
0

查看文档

params: '\'ret=\' + ret'

于 2013-08-07T04:33:15.880 回答