Safari和Chrome都会出现以下问题,因此可能是WebKit问题。
页面A:要求您登录查看的页面,包含一个带有type = submit按钮的表单,其中name = submit,value = a
页面B:其他一些页面
页面C:询问用户登录页面,包含一个带有type = submit按钮的表单,其中name = submit和value = c
用户访问页面A,然后访问页面B.然后空闲和用户的登录会话超时。用户点击后退按钮返回到页面A.浏览器将用户重定向到页面C.
在Safari和Chrome上,当呈现C时,页面C上的表单具有type = submit按钮,name = submit,但值显示为“a”。
如果您在第C页上重新加载,“c”将显示为name = submit按钮的值。
type = hidden input fields出现同样的问题;当用户点击后退按钮时,它们的值也会从其他某种形式更改为其他值。此外,此问题也显示没有重定向,只需提交然后返回。在这种情况下,前一页的隐藏和提交CGI变量的值呈现的值不正确。
到目前为止,我能想到的唯一修复是在页面C加载后使用Javascript重置type = hidden和type = submit变量值,以确保值正确。但这并不干净且普遍适用。
没有WebKit修复此错误,有没有人遇到过更好的解决方法?
感谢。
答案 0 :(得分:17)
答案 1 :(得分:4)
我不确定,但尝试在所有表单中添加autocomplete ='off'。
<form .... autocomplete = 'off'>
答案 2 :(得分:1)
autocomplete="off"
对我不起作用。我找到了另一种解决方法,可以使用text
字段,使用
DIV style="display:none"
并在input_type="text" value="s"
代码
DIV
个字段
答案 3 :(得分:0)
对此的一种解决方案是在加载文档时重置表单
function ready(fn) {
if (document.readyState != 'loading'){
fn();
} else {
document.addEventListener('DOMContentLoaded', fn);
}
}
function resetForm() {
document.forms["myForm"].reset()
}
ready(resetForm)