我有一个form_for(:remote=>true)
工作,但我想在提交之前显示一个常规的 javascript 确认框。
有没有办法做到这一点?理想情况下,某种 :before 或 :onsubmit 可以接受取消提交,例如:return confirm("Are you sure?");
或者可能是 javascript 事件挂钩?
谢谢
我有一个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
- 触发来自服务器的错误响应ajax:complete
- 在服务器成功或错误响应时触发因此,作为示例,您应该能够confirm
使用如下代码来模仿表单助手选项:
$("#my_remote_form").on('ajax:beforeSend', function() {
return confirm("Are you sure?");
});