提交后禁用Rails中的link_to按钮以防止重复提交

Posted

技术标签:

【中文标题】提交后禁用Rails中的link_to按钮以防止重复提交【英文标题】:Disable link_to button in Rails after submit to prevent duplication submission 【发布时间】:2016-10-12 09:42:22 【问题描述】:

在我的 Rails 应用程序中,当尝试关闭对象(在本例中为调用)时会弹出一个模式。模态框会弹出一个标准的 Rails link_to,如下所示:

<%= link_to "Close Call #call.incident_number", close_call_path(call), :method => :post, :class => 'btn btn-danger btn-large btn-block' %>

在表单对象中,我可以禁用提交按钮,但设置 disable_with 的数据属性,但我不确定 link_to 帮助器中是否提供此选项。

<%= f.button "Update Unit", class: 'btn btn-info', data: disable_with: "<i class='icon-spinner'></i>Updating..." %>

我的目标是在操作到达控制器后防止重复点击按钮。

【问题讨论】:

【参考方案1】:

根据link_to 文档,您可以使用选项disable_with 作为data 属性。

:disable_with - 此参数的值将用作提交表单时禁用版本的提交按钮的值。此功能由不显眼的 javascript 驱动程序提供。

【讨论】:

谢谢,我之前用 link_to 试过这个,但它没有用 button_to 工作。来发现这是一个清晨的语法错误。感谢您的回答!

以上是关于提交后禁用Rails中的link_to按钮以防止重复提交的主要内容,如果未能解决你的问题,请参考以下文章

防止表单重复提交

在 Rails 4 中,如何禁用视图中的按钮并确保它不能被单击?

Rails:禁用link_to链接不起作用但隐藏link_to工作

如何防止重复提交表单?

防止使用 angular.js 提交多个表单 - 禁用表单按钮

如果 JS 可能被禁用,Rails 4 link_to :delete 的最佳方法是啥?