1

在开发 Grails 应用程序时,我正在使用 Ajax 迈出第一步。我在用

<g:form ...>  
  <g:submitToRemote ... />
</g:form>

以最简单的方式,开箱即用(感谢 grails!)。问题是,Ajax 调用需要大约 2 秒来返回和更新 html(至少在测试系统上),在此期间,用户可以(实际上经常这样做)再次点击提交按钮。目前这导致第二次调用最终破坏了输出(错误消息说,一个人不能两次提交相同的数据)。

防止这种情况的最佳方法是什么?

提前感谢您的意见!

4

2 回答 2

4

处理此问题的最佳方法是禁用 onSubmit() 函数中的提交按钮。老实说,我不知道为什么更多的网站不这样做。我经常去下一步,而不是禁用提交按钮,我将提交按钮放在一个跨度标签中,并用静态文本“请稍候......”替换跨度标签的内容,这样你的用户就会得到他们按下的视觉反馈按钮和“高层人员正在研究它”。

于 2011-02-22T03:27:27.983 回答
0

正如 dj_segfault 所说,您可以这样做。

如果您想在控制器中验证这一点,请查看官方文档中的“处理重复的表单提交”:

http://grails.org/doc/latest/guide/theWebLayer.html#formtokens

于 2013-03-14T01:26:08.230 回答