現象:JSP 頁面中 Checkbox 被勾選後,Firefox 刷新(F5)頁面,勾選狀態保留,預期應重置為未勾選。
這不是 HTTP 緩存問題,而是瀏覽器的表單自動填充/會話恢復功能。Firefox 在刷新、前進/後退、會話恢復時,會嘗試保留用戶已填寫的表單狀態(input、textarea、select),以提升用戶體驗(防誤刷新丟失數據)。
window.onload = function() { document.getElementById('myCheckbox').checked = false; }$(function(){ $('#myCheckbox').prop('checked', false); });<input type="checkbox" autocomplete="off" />type="button" 而非 type="submit" 避免表單提交觸發保存(不適用於單純刷新)。在頁面初始化腳本中顯式設置表單控件初始值,覆蓋瀏覽器自動填充行為。這同時也能解決 Chrome、Edge 等瀏覽器的類似問題。