我有一个form_for(:remote=>true)
,但我想在提交之前显示常规的JavaScript确认框。
反正有没有实现这个目标?
理想情况下某种:before或:onsubmit会接受取消提交,例如:return confirm("Are you sure?");
或者javascript事件钩子?
谢谢
答案 0 :(得分:11)
您可以使用the confirm
option轻松完成此操作:
<%= for_form @my_thing, remote: true do |f| %>
<%= f.text_field :my_value %>
<%= f.submit 'Submit', confirm: 'Are you sure?' %>
<% end %>
您需要使用Rails UJS driver(默认情况下在新的Rails项目上启用)才能无缝地工作。
如果您愿意,还有hooks into the form submission lifecycle you can access:
ajax:beforeSend
- 在发出XHR请求之前触发;返回false以取消请求ajax:success
- 从服务器成功响应后触发ajax:error
- 从服务器的错误响应中触发ajax:complete
- 从服务器的成功或错误响应中触发因此,作为示例,您应该能够使用以下代码模仿confirm
表单帮助程序选项:
$("#my_remote_form").on('ajax:beforeSend', function() {
return confirm("Are you sure?");
});