Если форма отправляется обратно, страница будет выгружена. Все ожидающие запросы будут отброшены (хотя сервер продолжит обрабатывать любые запросы, которые он уже видел, ничего не поделаешь). Если сообщение также происходит через AJAX, вы можете использовать переменную защиты и просто установить ее перед отправкой и проверить ее перед отправкой запроса на обновление.
Я предполагаю, что вы хотите делать периодические обновления, пока форма не будет отправлена - цикл на самом деле не идеальный способ справиться с этим. В приведенном ниже примере метод setTimeout используется для опроса сервера каждую секунду, если форма еще не отправлена.
var submitted = false;
var timer = null;
$('.submit-button').click( function() {
submitted = true;
if (timer) clearTimeout( timer );
$('form').submit();
return false;
});
function doUpdate()
{
if (!submitted) {
$.ajax({
...
});
timer = setTimeout(doUpdate,1000);
}
}
doUpdate();