【问题标题】:Alert user to unsaved changes on page before closing the page. Rails 6. Updated在关闭页面之前提醒用户页面上未保存的更改。 Rails 6. 更新
【发布时间】:2021-10-08 05:23:04
【问题描述】:

更新为使用更智能的实现(或至少更简洁)。这将使大多数 cmets 变得无关紧要,但感谢这些 cmets。

如何在关闭页面之前提醒用户注意页面上未保存的更改。 Rails 6。

AreYouSure 通过yarn add areyousure 添加。

相关于application.js

import 'jquery';
global.$ = global.jQuery = jQuery;
window.$ = window.jQuery = jQuery;
import 'areyousure/areyousure.js';

/edit.html.erbdata-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 (link 在 github 上已经死了)。也试过dirtyforms。有其他问题。看来我和 AreYouSure 关系更近了

【问题讨论】:

    标签: javascript jquery ruby-on-rails webpacker jquery-dirtyforms


    【解决方案1】:

    您的目标似乎是表单周围的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>
    

    【讨论】:

    • Ryan Crispin Heneise 感谢您的建议,但仍然是同样的问题。我应该补充一点,当我尝试在编辑中执行任何操作时,会弹出一个带有默认警告的新编辑页面。不仅仅是弹出窗口。我刚刚检查了我的 people_controller 和 def edit 什么都没有。我尝试将 div id 更深地放入表单中,但仍然存在相同的问题(无法编辑),所以我认为 JavaScript 中存在错误或其他更深层次的冲突。
    • 尝试检查该方法名称的大小写 - 在文档中它写为 areYouSure(),但您写的是 areyousure()
    • 由于import 'areyousure/areyousure.js';,它是小写的。通过纱线添加,我几乎可以肯定这是它需要的方式,否则它不会做任何事情。但只是为了确保我输入了areYouSure 并且没有任何反应。当我尝试编辑时,当它进入编辑页面时,我检查了其他内容。该页面有标题和Are you sure? Yes | No,这是默认值,而不是脚本中的消息。服务器日志或控制台中没有任何内容。
    猜你喜欢
    • 1970-01-01
    • 2016-06-25
    • 1970-01-01
    • 2019-03-21
    • 2019-06-27
    • 2018-03-12
    • 1970-01-01
    • 2014-10-07
    • 1970-01-01
    相关资源
    最近更新 更多