更新为使用更智能的实现(或至少更简洁)。这将使大多数评论无关紧要,但感谢您的评论。
如何在关闭页面之前提醒用户未保存的页面更改。Rails 6 .
是通过yarn add areyousure
添加的。
与application.js
相关
import 'jquery';
global.$ = global.jQuery = jQuery;
window.$ = window.jQuery = jQuery;
import 'areyousure/areyousure.js';
在/edit.html.erb
中,data-areyousure
加入div包围形式
<div class="row">
<div class="col-md-6 col-md-offset-3" data-areyousure >
<%= render 'form' %>
</div>
</div>
这甚至不允许对表单进行任何更改。只要你点击表单中的编辑页面更新到Are you sure? Yes | No
。不是弹出窗口
github页面没有看到太多活动。
Demo (github上的链接已死)。也试过脏的形式。还有其他问题。似乎我离areyouure更近了
看起来您的目标是div
容器周围的表单,而不是表单本身。尝试将areyousure
附加到表单对象:
<% provide(:title, 'Edit Person') %>
<h1>Edit: <%= @person.full_name %></h1>
<script>
$(function() {
$('#person_edit_form form').areyousure(
{
message: 'It looks like you have been editing something. '
+ 'If you leave before saving, your changes will be lost.'
}
);
});
</script>
<div class="row">
<div class="col-md-6 col-md-offset-3" id="person_edit_form">
<!-- !render bookmark -->
<%= render 'form' %>
</div>
</div>