grails远程表单,多个提交,使用javascript

时间:2010-06-24 19:54:00

标签: javascript grails

我的情况是我有一个带有多个提交按钮的表单,我想要更新远程帧。我尝试使用g:formremote和2个g:actionsubmit按钮(支持javascript)但多个提交按钮有一个小故障(在此处描述:http://www.grails.org/Ajax在“带有formRemote的多个按钮”下)。

我采用了2个g:submittoremote按钮来解决这个问题,它按照我的预期方式工作,但不接受像onClick这样的javascript参数(有问题的按钮是接受/拒绝我想要的将AYS放在拒绝上,以免意外使用。)

有没有办法以远程形式存在javascript和多个提交按钮?

先谢谢你的帮助......

2 个答案:

答案 0 :(得分:5)

您是否尝试过before参数?它需要一个JavaScript函数,它将在远程函数调用之前执行。只需使用它:

<g:submitToRemote value="Reject" update="feedback" 
                  controller="test" action="reject"
                  before="if (!confirm('sure?')) {return false;}" />

在您的Ajax更新程序调用之前,您在before参数中放置的任何JavaScript都将插入到onclick属性中。通过这种方式,您可以轻松地进行验证,获得确认等,甚至可以在提交Ajax调用之前中断onclick处理。有一个类似的after参数。

答案 1 :(得分:3)

好吧,我并不是说这很漂亮,但我只是搞砸了几分钟,并且有一些可能适合你的东西。就像我说的......不是最漂亮的解决方案,但很少有解决方法......

 <html>
<head>
<g:javascript library="prototype" />
</head>
<body>
<script type="text/JavaScript">
function setReject()
{
  document.getElementById('reject').value='true'
}
</script>

<g:formRemote name="test" update="updater" url="[ controller: 'date', action: 'test']" >
    <g:hiddenField name="reject" value="false" />
    <g:submitButton name="submit" value="something" onclick="setReject();return confirm('Are you sure???')" />
    <g:submitToRemote update="updater" action="otherTest" controller="date" value="Go Ahead"/>
</g:formRemote>


<div id="updater">

</div>
</body>
</html>