Как отличить JS-отправку от использования кнопки назад (onbeforeunload)? - PullRequest
0 голосов
/ 07 июля 2011

Я схожу с ума от onbeforeunload и form.submit (). Вы моя последняя надежда на блестящую идею ...

У меня есть форма. Если пользователь нажимает кнопку «Назад», это вызывает много проблем, поэтому window.onbeforeunload отображает предупреждение. Конечно, отправка формы должна быть разрешена, поэтому form.onsubmit устанавливает глобальную переменную, чтобы сообщить функции onbeforeunload о необходимости завершить работу. Пока все в порядке.

Иногда форма должна быть отправлена ​​автоматически через JS. И у меня нет доступа к функциям, которые вызывают form.submit (), а точнее - пользователи будут создавать простой код, который может включать в себя form.submit ().

Дело в том, что form.submit () по спецификации не вызывает событие onsubmit формы. Поэтому, пытаясь отправить форму через form.submit (), регулярно советует мне закрыть страницу.

Итак, вернемся к моей надежде: у кого-нибудь есть блестящая идея, как решить этот замкнутый круг?

Большое спасибо BurninLeo

1 Ответ

2 голосов
/ 07 июля 2011
var form = document.getElementById('the-form'),
     sub = form.submit;

form.submit = function(){
    alert('caught submit');
    sub.apply(form);
}

form.submit();
...