我已经在网上搜索,但找不到任何解决方案。 当我点击'samplepage.php'上的'提交'按钮时,我将页面重定向到'newpage.php'页面。当用户点击浏览器的后退按钮时,我想重置'samplepage.php'表单值。现在它保留了所有的文本框值,单选按钮和复选框选择。如果有任何建议,请让我知道吗?谢谢你的帮助。重置后退按钮上的表格
这是我的重定向php代码。
header ("location:newpage.php);
我已经在网上搜索,但找不到任何解决方案。 当我点击'samplepage.php'上的'提交'按钮时,我将页面重定向到'newpage.php'页面。当用户点击浏览器的后退按钮时,我想重置'samplepage.php'表单值。现在它保留了所有的文本框值,单选按钮和复选框选择。如果有任何建议,请让我知道吗?谢谢你的帮助。重置后退按钮上的表格
这是我的重定向php代码。
header ("location:newpage.php);
您无法使用服务器端代码观看浏览器的后退按钮。
需要Javascript和jQuery用在如“popstate”一知半解和“pushState的”舞台
jQuery对此没有必要。 :/ – Snuffleupagus 2012-03-01 21:37:25
它不是'必需的',但是OP对客户端代码有明显的理解,您不会推荐一个库,也可能是一个polyfill? – Relic 2012-03-01 21:40:16
也许,与其向人们提供一个4线解决方案的90k库,我们应该考虑人们有思想能力;如果他们在这里想要传递代码而没有理解它是如何工作的,那么他们在错误的地方开始。 – Snuffleupagus 2012-03-01 21:47:15
清除在页面加载的值。
<input type="text" id="ClearIt" value=""/>
将此放在口主体标签:
onload="document.getElementById('ClearIt').value=''"
这事关系到浏览器。
您可以清空输入在最后时刻(提交前),并把值一些隐藏的领域...
你必须清除它在页面加载如果你真的想这样做。如果您有多个控件,则需要在表单中循环以清除它。假设他们所有项目...
var elems = document.getElementsByTagName("input")
for (var i=0;i<elems.length;i++)
{
elems[i].value = '';
}
它让所有的输入控件,遍历所有这些,将它们的值空白。 您可以通过设置.checked取决于它们的类型来扩展它以用于单选按钮/复选框。
只是我的两分钱问题,虽然,这是一个坏主意,清除表单。浏览器保留它所做的状态是有原因的。
例如,如果服务器端的验证失败,我不得不返回并重新输入所有内容,我不会很高兴。 :(
你忘死()
header ("location:newpage.php");
die();
您也可以尝试重置$ _ POST,$ _ GET和$ _SESSION瓦尔
unset($_POST,$_SESSION, $_GET);
header ("location:newpage.php);
die();
更新:刚刚看了你想在历史背景上取消设置 ,我没有意识到在我的 上面的代码中...
您将不得不ww请使用一些标记代码来清除与输入字段相关的 变量并选择表格的列表 。
无论如何。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)
);
}
在表单股利
<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>
另外,您也可以使用HTML事件“onunload的”做同样的事情海报建议之前。从你的角度来看,在你开火的时候可能并不重要。
你在做什么网页浏览器测试? – user17753 2012-03-01 21:30:42
你可以在'onload'事件中使用窗体的'reset()'方法... – Yaniro 2012-03-01 21:31:43
我必须支持所有的浏览器。 – nav100 2012-03-01 21:35:01