остановить загрузку страницы после открытия диалогового окна

То, что я пытаюсь сделать, это иметь контактную форму, и когда пользователь нажимает «Отправить», появляется диалоговое окно с просьбой подтвердить «да/нет», и форма не должна отправляться, пока пользователь не выберет «да» или не останется на странице когда выбирает нет.

В чем моя проблема: как только открывается диалоговое окно, форма все еще отправляется, а диалоговое окно открывается всего на секунду или около того.

Итак, можно ли остановить загрузку страницы до тех пор, пока диалоговое окно не будет закрыто или не будет нажата кнопка «Да»?

Я использую плагин jQuery Impromptu для диалогового окна.


person Trisha    schedule 02.11.2012    source источник


Ответы (2)


Не используйте type="submit", просто используйте type="button". Отправьте форму из собственного кода на основе результата диалога.

person Diodeus - James MacFarlane    schedule 02.11.2012
comment
Отлично, это сработало. Теперь моя единственная проблема заключается в том, что форма на самом деле не отправляется, она появляется с ошибкой формы, что страница не может быть доступна напрямую (находится в файле nlphpmail.php) - person Trisha; 02.11.2012
comment
Вы не отправляете форму, вы перенаправляете с помощью window.location. Использование: document.forms[0].submit. - person Diodeus - James MacFarlane; 02.11.2012
comment
Наверное, я не понимаю, как это реализовать. Меняю ли я window.location="nlphpmail.php"; только на document.forms[0].submit? - person Trisha; 02.11.2012
comment
да. На самом деле: document.forms[0].submit(); - person Diodeus - James MacFarlane; 02.11.2012
comment
теперь он ничего не делает, кроме как закрывает диалоговое окно... не знаю, что происходит. Вы можете просмотреть источник и убедиться, что он правильный? - person Trisha; 02.11.2012
comment
до сих пор не могу найти решение, я все перепробовал и ничего не делает, кроме закрытия диалогового окна. @Диодей - person Trisha; 02.11.2012
comment
документ.форма[электронная почта].отправить(); ищет переменную с именем email. У вас его нет. Просто используйте 0. - person Diodeus - James MacFarlane; 02.11.2012
comment
даже если я использую 0, это все равно ничего не делает. @Диодей - person Trisha; 03.11.2012
comment
решено, на входах кнопок были id=submit и name=submit, их нужно было изменить на что-то другое. - person Trisha; 03.11.2012

Я не знаком с импровизированной библиотекой; однако я считаю, что это можно сделать, остановив отправку события onClick и отправку с помощью обратного вызова в вашем методе go_there(). Я бы попробовал заменить метод onClick на "go_there(); return false;". Это должно отменить обычное событие отправки. Затем вы можете добавить оператор отправки (document.email.submit();) в истинное условие вашего обратного вызова, прежде чем сбрасывать местоположение.

person Angus Atkins-Trimnell    schedule 02.11.2012
comment
это не сработало, или я не уверен, как добавить оператор отправки к истинному условию - person Trisha; 02.11.2012
comment
Я поднял тестовую страницу в начальном посте. Кажется, он работает правильно. Есть ли еще проблема? - person Angus Atkins-Trimnell; 08.11.2012