Rails 解决可恶的双重提交问题 (jQuery)

yume · 2012年11月03日 · 最后由 QueXuQ 回复于 2012年11月07日 · 3295 次阅读

当表单提交时会出现延迟,有时是几秒或者更长,这使得用户会多次提交按钮,从而给服务器端代码带来了诸多麻烦。“多次提交,会产生多条同样的数据”,这是在过去 4 年里,作为软件测试人员的我,经常性提交的 Bug。

现在,就来解决可恶的双重提交问题(请参看《jQuery 实战》第二版 - 第 54 页): 针对上表单,请注意,需要考虑两种情况下的提交:

1. 第一次提交 2. 该表单未通过验证后,再一次提交

这两种情况的提交下,表单如未指定 id,那么 id 是变动的。如果实现为: 上述,只能解决第一种情况下的双重提交问题。此时,需要改进选择器为:匹配特性值开头部分。如下 这样的话,就能解决两种情况下的双重提交问题。

当然,也可以直接定义表单的 id 为 :id => "new_post" 从七月开始,我已不再从事软件测试。以前,总是不停地找问题; 现在,不仅要找问题,还要解决问题

前几天,老大问我们:是喜欢研究,还是具体实现。我是一个喜欢享受过程的菜鸟。 还有,人有时不需要太聪明。太聪明了,生活就不容易简单了

你搞那么复杂干嘛。。。 <%= f.submit "保存", :disable_with => "正在提交..." %>

#1 楼 @ywencn 因为我是菜鸟,呵呵。谢谢!

#1 楼 @ywencn 这个方法确实好,但是 IE6 不行,这年头还要兼容 IE6 的注意了, 😆 ,当然了这不妨碍我们说:去 TM 的 IE6 吧 😄

#5 楼 @chinacheng 会淘汰 IE6 做点贡献吧

#5 楼 @chinacheng 直接弹出提示,给出链接,升级 IE。

#1 楼 @ywencn 该死的,我用 simple_form 里,在 chrome 怎么没有效果的呢?

= f.button :submit, '编辑配件信息', "disable_with" => "正在提交...", :class => 'btn btn-primary'
需要 登录 后方可回复, 如果你还没有账号请 注册新账号