我有一个带有表单的页面,我正在尝试防止重复提交,这是相当简单的(如果有人感兴趣,我使用了这个方法)。
$("form").submit(function()
{
setTimeout(function()
{
$("input").attr("disabled", "disabled");
}, 50);
});
我从这个页面中偷了一个方法,它可以很好地工作。正如预期的那样,输入框很快就被禁用,表单按预期提交,用户被重定向。
我的问题在于:我预计用户有时会使用返回按钮而不是页面内导航,因此如果他们点击返回按钮,我希望页面仍然可以正常使用。但是,当我在成功提交后点击返回按钮时,我被返回到前一页,所有输入框都被禁用(你可能已经知道会发生这种情况)。我希望他们在点击返回按钮后仍然能够使用该页面,如果他们想要的话。
我首先尝试使用头部/元标签告诉浏览器不要缓存页面,但这并没有起作用(在Firefox 3.6.8中)-然后我决定我也不想这样做,因为它可能不兼容跨浏览器,并且可能不是最佳实践(这里是其中之一)。我不想使用任何“打破”返回按钮的东西,就像我见过的一些应用程序那样(例如,当用户单击它时,它不会将其返回到上一页,而是强制他们停留在该页面),这对我来说似乎是一个坏主意。有人知道如何在客户端防止重复提交表单,而不使用户单击返回按钮时渲染页面无用吗?(如果有任何影响的话,我正在使用ASP.NET MVC 1)。