繁体   English   中英

取消在Rails远程form_for上提交

[英]Cancel submit on a rails remote form_for

我有一个form_for(:remote=>true)工作,但是我想在提交之前显示一个常规的javascript确认框。

反正有实现这一目标的方法吗? 理想情况下,某种:before或:onsubmit可以接受取消提交的方式,例如: return confirm("Are you sure?"); 还是一个javascript事件挂钩?

谢谢

您可以通过confirm选项轻松地做到这一点:

<%= for_form @my_thing, remote: true do |f| %>
  <%= f.text_field :my_value %>
  <%= f.submit 'Submit', confirm: 'Are you sure?' %>
<% end %>

您需要使用Rails UJS驱动程序 (默认在新的Rails项目上启用)才能无缝运行。

如果需要,您还可以访问表单提交生命周期中的钩子

  • ajax:beforeSend在发出XHR请求之前触发; 返回false取消请求
  • ajax:success -在服务器成功响应时触发
  • ajax:error error-在服务器的错误响应上触发
  • ajax:complete在服务器成功或错误响应时触发

因此,作为示例,您应该能够使用以下代码来模仿confirm Form Helper选项:

$("#my_remote_form").on('ajax:beforeSend', function() {
  return confirm("Are you sure?");
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM