我有一个通常适用于脏表单的表单。但是,在一种情况下,当单击日期时,jquery-ui 数据选择器日历会弹出“确定”对话框。
我强调这通常可以正常工作。这种情况与表单数据源的初始条件有关。当被引用的对象存在时,事情会起作用,但如果它是新的,则不会。所以我确信表单的初始条件有所不同。但理论上形式应该是相同的。
如何找到导致弹出窗口的原因,以便解决我的问题?
我有一个通常适用于脏表单的表单。但是,在一种情况下,当单击日期时,jquery-ui 数据选择器日历会弹出“确定”对话框。
我强调这通常可以正常工作。这种情况与表单数据源的初始条件有关。当被引用的对象存在时,事情会起作用,但如果它是新的,则不会。所以我确信表单的初始条件有所不同。但理论上形式应该是相同的。
如何找到导致弹出窗口的原因,以便解决我的问题?
好吧,通过比较工作和非工作情况的 HTML,我确实找到了导致我的问题的原因。(这不是一件容易的事,因为有许多不相关的差异。)
似乎原始编码器做了一件奇怪的事情。当页面是“新的”时省略了一些 Javascript 函数声明,但当然并没有消除对这些函数的调用。
所以我猜想javascript错误是根本原因。至少当我包含这些函数声明时,一切正常。
默认情况下,页面上的大多数锚链接都会触发对话框。我们没有所有潜在的第 3 方小部件的硬编码选择器,您必须手动清点这些小部件是否使用超链接并在它们导致错误行为时忽略它们。
有关更多信息,请参阅忽略事物。
我无法使用 Dirty Forms 2.0.0、jQuery UI 1.11.3 和 jQuery 1.11.3 重现此行为。但是,在以前版本的脏表单中,您可能可以使用以下代码来忽略来自 DatePicker 的超链接单击。
$('.ui-datepicker a').addClass($.DirtyForms.ignoreClass);