在我打开和关闭模态后,脏表单停止工作



我有一个表单,我想警告用户保存他们的数据。 它是用脏形完成的。

我的表单中有一个按钮,可以打开一个带有一些额外表单的模式对话框。所以
1. 我打开表单对话框
2. 在对话框中
编辑(或不编辑)我的新表单3. 关闭对话框
4. 返回我的第一个表单并单击离开。肮脏的表格不会警告我丢失数据。

我在

调试模式下检查了它,我在控制台中看到以下内容:

[DirtyForms] Adding form w0 to forms to watch
[DirtyForms] Storing original value for _csrf
[DirtyForms] Storing original value for Prenajom[r1]
[DirtyForms] Entering: Leaving Event fired, type: click, element: http://k.local/..., class: btn btn-default popup-addon-table and id:
[DirtyForms] Leaving: Not dirty
[DirtyForms] Clearing the beforeunload event

在打开模态时,它会触发离开事件。我该如何预防它?

谢谢!

默认情况下,所有锚标记 ( <a> ) 都会附加一个触发对话框的事件,因为没有合理的方法来区分离开页面的锚点和不离开页面的锚点。如果您有未导航离开的锚标记,则应忽略它们,以便它们不会触发对话框。

选项 1

设置忽略选择器选项以忽略特定字段、锚点或按钮。

$('form').dirtyForms({ ignoreSelector: 'a.ignore-me' });

选项 2

或者,将 $.DirtyForms.ignoreClass 的值添加到要忽略的任何元素,脏窗体将忽略它们。

$('#ignored-element').addClass($.DirtyForms.ignoreClass);

选项 3

如果要一次忽略多个元素,可以将 $.DirtyForms.ignoreClass 的值(默认值为 dirtyignore )添加到包含元素。

<div class="dirtyignore">
    <!-- Everything here will be ignored - anchor, input, textarea, and select -->
</div>

我收到了@NightOwl888的答案,解决了我的问题:

"你的设置有一个错误,那就是Dirty Forms应该始终是堆栈中的最后一个jQuery插件,如文档中所述。如果在初始化脏窗体后将事件附加到按钮,则可能不会正确忽略。

相关内容

  • 没有找到相关文章

最新更新