【问题标题】:grails remote form, multiple submits, with javascriptgrails远程表单,多次提交,使用javascript
【发布时间】:2011-03-08 00:07:09
【问题描述】:

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

我采用了解决方法,使用 2 个g:submittoremote 按钮,按我预期的方式工作,但不接受 onClick 之类的 javascript 参数(有问题的按钮是接受/拒绝,我想放一个 AYS在拒绝上,所以它不会被意外使用)。

有没有办法让远程表单中的javascript和多个提交按钮和平存在?

提前感谢您的帮助...

【问题讨论】:

    标签: javascript grails


    【解决方案1】:

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

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

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

    【讨论】:

    • 我弄乱了 before 属性的一堆排列,但没有尝试这个。这应该完全符合 OP 的要求。好电话!
    • ETA:经过进一步检查,无论用户的选择如何,它仍然会发送表单。我在一个程序员的博客(fbflex.wordpress.com/2010/05/09/…)上找到了解决方案;它的要点是关闭after 中的“if”调用,所以它是: 这对我有用!
    • 如果取消确认框,则不发送表单并且不执行操作,但是如果通过 OK 确认,则将表单发送到拒绝操作。使用当前的 Firefox 和 IE 进行了测试和双重检查。您可以将后一种解决方案重写为 before="if(confirm('sure?')){" after="}" 但是将语句拆分为参数很奇怪,尤其是 submitToRemote 标记在 before 和后。您可以在渲染页面的源代码中看到这一点。
    【解决方案2】:

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

     <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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-10
      • 1970-01-01
      • 2011-12-12
      • 2012-02-28
      相关资源
      最近更新 更多