我有一个页面,其中包含我试图防止重复提交的表单,这相当简单(如果有人好奇,我使用了这个
$("form").submit(function()
{
setTimeout(function()
{
$("input").attr("disabled", "disabled");
}, 50);
});
...我从这个页面偷来的,它工作正常。正如预期的那样,输入被快速禁用,表单按预期提交,用户被重定向。
这是我的问题:我预计用户有时会使用“后退”按钮而不是页面内导航,因此如果他们单击“后退”按钮,我希望页面能够正常工作。但是,当我在成功发布后单击“后退”按钮时,我会返回到上一页,并且禁用所有输入(您可能已经知道会发生这种情况)。如果他们愿意,我希望他们能够在单击“返回”按钮后使用该页面。
我首先尝试使用 header/meta 标签来告诉浏览器不要缓存页面,但这不起作用(在 Firefox 3.6.8 中) - 然后我决定我不想这样做,因为它可能不会'不是跨浏览器兼容的,无论如何可能不是最佳实践(这里有一个这样的案例)。我不想像我见过的某些应用程序那样使用“破坏”后退按钮的任何东西(例如,当用户单击它时,它不会将它们带回页面,而是迫使它们留在那个页面上),这对我来说似乎是个坏主意。有谁知道当用户单击“后退”按钮时我可以防止在客户端重复提交表单而不会使页面无用的方法?(以防万一,我使用的是 ASP.NET MVC 1)。