Как я могу найти то, что вызвало всплывающее окно?
У меня есть форма, которая обычно работает в отношении грязных форм. Однако есть одно обстоятельство, когда при щелчке по дате в календаре сборщика данных jquery-ui появляется диалоговое окно "Вы уверены"?
Я подчеркиваю, что это обычно работает правильно. Ситуация связана с начальными условиями формы данных источника. Все работает, когда объект, на который ссылаются, существует, но не если он новый. Так что я уверен, что где-то есть разница в начальных условиях формы. Но в теории форма должна быть одинаковой.
Как я могу найти причину всплывающего окна, чтобы я мог исправить свою проблему?
2 ответа
Ну, я действительно нашел то, что вызывало мою проблему, сравнивая 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);