1
我有一个form_for(:remote=>true)
工作,但我想在提交前显示一个常规的JavaScript确认框。取消提交轨道遥控form_for
无论如何要实现这一目标吗? 理想情况下某种:之前或:onsubmit会接受取消提交类似于:return confirm("Are you sure?");
或可能是一个javascript事件挂钩?
谢谢
我有一个form_for(:remote=>true)
工作,但我想在提交前显示一个常规的JavaScript确认框。取消提交轨道遥控form_for
无论如何要实现这一目标吗? 理想情况下某种:之前或:onsubmit会接受取消提交类似于:return confirm("Are you sure?");
或可能是一个javascript事件挂钩?
谢谢
你可以用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?");
});