表单提交后如何捕获 Rails 控制器操作完成
Posted
技术标签:
【中文标题】表单提交后如何捕获 Rails 控制器操作完成【英文标题】:How to catch Rails controller action completion after form submit 【发布时间】:2018-04-05 22:39:19 【问题描述】:我有一个 form_tag <%= form_tag(recommend_path, :method => "get", :id => "form") do %>
可以正常工作并重定向到下一页(recommend_path)。 Recommend 控制器(表单提交后加载的页面(非 Ajax)在加载下一页之前有一些非常长的分析操作(大约需要 10 秒)。
我想要实现的是在控制器操作完成时使用加载器添加覆盖。我已经成功添加了带有加载器的叠加层,但它只持续到表单提交完成。简而言之,在单击提交按钮后,带有加载程序的叠加层会根据需要激活,但在表单提交完成后消失(仅需要 1-2 秒)并且表单页面保持静止几秒钟(在控制器操作完成时)在转到下一页之前。
我想用 javascript(JQuery) 或其他任何东西来捕捉控制器动作的完成,以便加载器的覆盖一直保持到下一页加载。
注意:我正在使用 TurboLinks。
【问题讨论】:
你能发布你的控制器名称和方法名称吗? 【参考方案1】:在表单中设置 html 参数如下:
html: remote: true, id: 'form'
并用 Javascript 捕获它:
$('#form').on('ajax:complete', function(e, response)
# todo
)
【讨论】:
以上是关于表单提交后如何捕获 Rails 控制器操作完成的主要内容,如果未能解决你的问题,请参考以下文章