3

大多数浏览器缓存表单值,因此当用户导航到另一个页面然后按下后退按钮时,不必重新开始。

使用jquery 表单插件,这也会在表单提交成功后发生。

以下场景:

  1. 用户提交表单

  2. 显示提交成功并清除表单的消息

  3. 用户导航到其他页面

  4. 用户按下后退按钮

  5. 页面恢复到表单提交前的状态。

提交后调用 resetForm() 只会带回初始表单值,但不能解决缓存问题。

$(document).ready(function(){
    $('form').ajaxForm({
        success: function(responseText, statusText){
            displayMessage('form successful');
            $('form').resetForm();
        }
    });
});

在页面加载时调用 resetForm() 可以解决缓存问题,但在页面之间导航时会破坏预期的浏览器行为:

$(document).ready(function(){
    $('form').ajaxForm().resetForm();
});

提交成功后有没有办法清除缓存?

4

1 回答 1

2

我不太喜欢 JQuery,但通常可以使用以下方式关闭表单值的存储

autocomplete='off'

来源例如here

据我所知,没有其他跨浏览器方式可以影响浏览器在其缓存中存储的值。我认为不太可能以编程方式访问这些东西,因为这会带来复杂的安全隐患。

于 2009-12-10T12:49:06.260 回答