У меня есть страница с формой, где я пытаюсь предотвратить повторную отправку, что довольно просто (на случай, если кому-то интересно, я использовал это
$("form").submit(function()
{
setTimeout(function()
{
$("input").attr("disabled", "disabled");
}, 50);
});
... которую я украл у этой страницы , и она отлично работает. Как и ожидалось, входные данные быстро отключаются, форма отправляется, как ожидается, и пользователь перенаправляется.
Вот моя проблема: я ожидаю, что пользователи будут иногда использовать кнопку «Назад» вместо навигации внутри страницы, поэтому я хотел бы, чтобы страница работала, если они нажмут кнопку «Назад». Однако, когда я нажимаю кнопку «Назад» после успешной публикации, я возвращаюсь на предыдущую страницу со всеми отключенными входами (как вы могли знать, что это произойдет). Я бы хотел, чтобы они могли использовать страницу, если захотят, после нажатия кнопки «Назад».
Сначала я попытался использовать заголовочные / метатеги, чтобы запретить браузеру кэшировать страницу, но это не сработало (в Firefox 3.6.8), а затем я решил, что не хочу этого делать, потому что он, вероятно, не будет совместим с разными браузерами и, в любом случае, не является оптимальной практикой ( здесь - один из таких примеров). Я не хочу использовать что-либо, что «ломает» кнопку «Назад», как некоторые приложения, которые я видел (например, когда пользователь нажимает на нее, он не возвращает их назад на страницу, а заставляет их оставаться на этой странице). ), что мне кажется плохой идеей. Кто-нибудь знает, как я могу предотвратить повторную отправку формы на стороне клиента, не делая страницу бесполезной, когда пользователь нажимает кнопку «Назад»? (Если это вообще имеет значение, я использую ASP.NET MVC 1).