Событие после отправки формы, или некоторые тонкости метода submit

Потребовалось тут однажды выполнить редирект средствами JavaScript, аккурат после отправки формы. Поскольку никакого события типа AfterSubmit в природе не существует, вешаем с помощью JQuery обработчик на событие submit, и будем делать всё в этой функции.

$('#myform').submit(function(e) {
	this.submit();
	window.location.href = 'http://example.com/';
});

Казалось бы, чего проще, и в опере все работало отлично. Однако запустив код в Chrome обнаружил непонятную вещь, редирект успешно проходил, а на сервер ничего не отправлялось.

Для того, чтобы прошла отправка формы, приходится сделать следующий финт ушами.

$('#myform').submit(function(e) {
	this.submit();
	setTimeout(function() {
		window.location.href = 'http://example.com/';
	}, 100);
});

Просто вешаем редирект на таймер через 100 миллисекунд, и всё работает.

Купить бца в минске подробно. Смотрите здесь coral club.