Грязные формы перестают работать после того, как я открываю и закрываю модальные

У меня есть форма, где я хочу предупредить пользователя, чтобы сохранить свои данные. это сделано с Dirtyforms.

У меня есть кнопка в моей форме, которая открывает модальное диалоговое окно с дополнительной формой. Так,
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

При открытии модального события запускается событие ухода. Как я могу предотвратить это?

Спасибо!

2 ответа

По умолчанию все теги привязки (<a>) прикрепить к ним событие, которое запускает диалоговое окно, потому что нет разумного способа провести различие между привязкой, которая покидает страницу, и привязкой, которая не покидает страницу. Если у вас есть якорные теги, которые не перемещаются, вы должны их игнорировать, чтобы они не запускали диалог.

Опция 1

Установите параметр ignoreSelector, чтобы игнорировать определенные поля, привязки или кнопки.

$('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 в стеке, как отмечено в документации. Если вы прикрепляете событие к кнопке после инициализации Dirty Forms, оно может не корректно игнорироваться".

Другие вопросы по тегам