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