2009-12-10 132 views
3

大多数浏览器缓存表单值,所以当用户导航到另一个页面时,然后按下后退按钮不必重新开始。提交后重置表单并清除缓存

jquery form plugin这也发生在表单提交成功后。

以下情形:

  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(); 
}); 

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

回答

2

我没有那么多入JQuery的但形式值的存储通常可以被关掉使用

autocomplete='off' 

源例如here

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