У меня есть form.edit_recipe, и моя цель - получить эту форму, чтобы успешно сохранить (если есть новые данные) до того, как страница выгрузится без запроса пользователя.jquery beforeunload submit form
Это критический бит JQ:
$(document).ready(function() {
$(window).bind('beforeunload', function() {
if (auto_save_timer) { // auto_save_timer == true means there are changes
$("#auto_save_overlay").css('display', 'block'); // shows a spinner
$(".edit_recipe").submit();
}
});
});
При нажатии на ссылку на следующую страницу, иногда изменения сохранять и иногда они этого не делают, даже в одинаковых ситуациях и наборов данных.
Я на 99% уверен, что мои другие переменные и JQ на странице не влияют на это, но я могу обновить с большим количеством примеров кода, если это необходимо.
Я потерял или проблема, но я чувствую, что это связано с тем, что данные формы прерываются при загрузке следующей страницы.
Любые предложения?
EDIT: Спасибо за предложения до сих пор. Я думаю, что я должен прислушаться к совету @ see163 и, возможно, подумать о том, чтобы заставить пользователя вручную нажать кнопку сохранения и просто добавить alert()
, если есть несохраненные изменения. Это более ортодоксальный подход? И какие события/действия JQuery следует использовать для кросс-браузера, если .beforeunload
- это мусор в Opera и Chrome?
попробуйте позвонить .submit() перед .css() – maxhud
@maxhud Спасибо за предложение , переключение '.css' и' .submit', похоже, увеличивает скорость, с которой это работает, но по-прежнему не удается сохранить изменения. Я надеюсь на «правильный» способ сделать это, а не на польский для моего poo. – RickyD