如何找到触发了dirtyforms 弹出窗口的原因?

Posted

技术标签:

【中文标题】如何找到触发了dirtyforms 弹出窗口的原因?【英文标题】:How can I find what triggered a dirtyforms popup? 【发布时间】:2014-10-09 09:20:24 【问题描述】:

我有一个通常适用于脏表单的表单。但是,在一种情况下,当单击日期时,jquery-ui 数据选择器日历会弹出“确定”对话框。

我强调这通常可以正常工作。这种情况与表单数据源的初始条件有关。当被引用的对象存在时,事情会起作用,但如果它是新的,则不会。所以我确信表单的初始条件有所不同。但理论上形式应该是相同的。

如何找到导致弹出窗口的原因以便解决我的问题?

【问题讨论】:

一些代码将帮助我们帮助您。 嗯,通过比较工作和非工作情况的 html,我确实找到了导致我的问题的原因。 (这不是一件容易的事,因为有许多不相关的差异。) 【参考方案1】:

嗯,通过比较工作和非工作情况的 HTML,我确实找到了导致问题的原因。 (这不是一件容易的事,因为有许多不相关的差异。)

似乎原始编码器做了一件奇怪的事情。当页面是“新的”时省略了一些 javascript 函数声明,但当然并没有消除对这些函数的调用。

所以我猜想 JavaScript 错误是根本原因。至少当我包含这些函数声明时,一切正常。

【讨论】:

【参考方案2】:

默认情况下,most anchor links on the page will trigger the dialog。我们没有所有潜在的第 3 方小部件的硬编码选择器,您必须手动清点这些小部件是否使用超链接,并在它们导致错误行为时忽略它们。

更多信息请参见ignoring things。

我无法使用 Dirty Forms 2.0.0、jQuery UI 1.11.3 和 jQuery 1.11.3 重现此行为。但是,在旧版本的脏表单中,您可能可以使用以下代码来忽略来自 DatePicker 的超链接点击。

$('.ui-datepicker a').addClass($.DirtyForms.ignoreClass);

【讨论】:

以上是关于如何找到触发了dirtyforms 弹出窗口的原因?的主要内容,如果未能解决你的问题,请参考以下文章

脏表单 - 如何忽略 parent.window.location.href 上弹出的脏表单

jquery popup中的事件被多次触发

DirtyForms 不能与 $.blockUI 一起正常工作

如何在单击链接时触发另存为弹出窗口?具体来说,我如何触发 MIME 类型的变化?

如何在chrome(javascript)上触发麦克风权限弹出窗口[重复]

如何使用 jquery.dirtyforms?