我一直在谷歌搜索非常好,但我找不到解决这个问题的方法。我试图从我的Groovy控制器中的GSP文件访问JavaScript变量,但我无法找到如何执行此操作。
示例:
//JavaScript stuff
<script>
function validateForm(){
var ret = false
}
</script>
//Groovy controller stuff
def myAction = {
println params.ret
}
我如何实现类似的目标?
答案 0 :(得分:2)
将变量传递给控制器的两种方法:
<强>的Ajax 强>
使用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>
答案 1 :(得分:0)
查看documentaton。
params: '\'ret=\' + ret'