我在网上搜索过但找不到任何解决方案。 当我点击'samplepage.php'上的'Submit'按钮时,我将页面重定向到'newpage.php'页面。我想在用户点击浏览器的后退按钮时重置'samplepage.php'表单值。现在它保留所有文本框值,单选按钮和复选框选择。如果有任何建议,请告诉我?谢谢你的帮助。
这是我的重定向php代码。
header ("location:newpage.php);
答案 0 :(得分:0)
您无法使用服务器端代码观看浏览器的后退按钮。
你需要在'popstate'和'pushstate'竞技场中掌握一点知识的Javascript和jQuery
答案 1 :(得分:0)
这与浏览器有关。
您可以在最后时刻(提交前)清空输入并将值放在一些隐藏的字段中......
答案 2 :(得分:0)
如果你真的想这样做,你必须在页面加载时清除它。如果您有多个控件,则需要在表单中循环以清除它。假设他们所有项目......
var elems = document.getElementsByTagName("input")
for (var i=0;i<elems.length;i++)
{
elems[i].value = '';
}
它获取所有输入控件,遍历所有输入控件并将其值设置为空白。 您可以通过根据类型设置.checked来扩展它以适用于单选按钮/复选框。
这个问题只是我的两分钱,清除表格是个坏主意。浏览器保留他们所处的状态是有原因的。
例如,如果验证在服务器端失败,我必须返回并重新输入所有内容,我将不满意。 :(
答案 3 :(得分:0)
你忘了死()
header ("location:newpage.php");
die();
你也可以尝试重置$ _POST,$ _GET和$ _SESSION vars
unset($_POST,$_SESSION, $_GET);
header ("location:newpage.php);
die();
更新:刚刚读到你试图取消设置 在历史上,我没有意识到在我的 以上代码...
你必须写一些标记代码才能清除 与输入字段和选择关联的变量 表单列表。
Whatever.js
function clearForm(formIdent)
{
var form, elements, i, elm;
form = document.getElementById
? document.getElementById(formIdent)
: document.forms[formIdent];
if (document.getElementsByTagName)
{
elements = form.getElementsByTagName('input');
for( i=0, elm; elm=elements.item(i++); )
{
if (elm.getAttribute('type') == "text")
{
elm.value = '';
}
}
elements = form.getElementsByTagName('select');
for( i=0, elm; elm=elements.item(i++); )
{
elm.options.selectedIndex=0;
}
}
// Actually looking through more elements here
// but the result is the same.
else
{
elements = form.elements;
for( i=0, elm; elm=elements[i++]; )
{
if (elm.type == "text")
{
elm.value ='';
}
}
}
}
function addEvent(elm, strEvent, fnHandler)
{
return ( elm.addEventListener
? elm.addEventListener( strEvent, fnHandler, false)
: elm.attachEvent( 'on'+strEvent, fnHandler)
);
}
在Form Div中
<script type="text/javascript">
// <![CDATA[
var el = document.createElement("input");
el.setAttribute("id", "clearButton");
el.setAttribute("type", "button");
el.setAttribute("value", "Clear");
document.getElementById("FormDiv").appendChild(el);
addEvent(el, 'click', function(){ clearForm('form_name');} );
// ]]>
</script>
答案 4 :(得分:0)
或者你也可以使用HTML事件'onunload'来做海报之前提出的相同的事情。从你的角度来看,当你解雇事件时,这可能并不重要。
答案 5 :(得分:-1)
清除页面加载时的值。
<input type="text" id="ClearIt" value=""/>
将其放在开始身体标记中:
onload="document.getElementById('ClearIt').value=''"