我将下拉选择保存在一个名为";mysettings";。但是,在第一次运行程序(myform.htm(并将这两个字段的选择保存在cookie中后,在第二次运行时,我希望删除cookie,并同时单击"重置"按钮重置两个下拉框。
MYFORM。HTM:
<form action="myform.htm" method="post" >
Field 1: <select name="f1">
<option value="1">First</option>
<option value="2">Second</option>
<option value="3">Third</option>
</select>
Field 2: <select name="f2">
<option value="1">First</option>
<option value="2">Second</option>
<option value="3">Third</option>
</select>
<input type="reset" value ="Reset" onclick= 'document.cookie = "mysettings=; expires=Fri, 29 Jun 2018 00:00:00 GMT; path/";'/>
<input type="submit" name="action" value=" Submit ">
</form>
然而,它既没有删除cookie,也没有重置表单。我做错了什么?
提前谢谢。
---编辑---我发现了删除cookie的问题。它缺少一个SECURE参数。cookie由Coldfusion保护,但cookie删除缺少该参数,因此不会删除。所以现在我有了:
<form action="myform.htm" method="post" >
Field 1: <select name="f1">
<option value="1">First</option>
<option value="2">Second</option>
<option value="3">Third</option>
</select>
Field 2: <select name="f2">
<option value="1">First</option>
<option value="2">Second</option>
<option value="3">Third</option>
</select>
<input type="reset" value ="Reset" onclick= "clearset()">
<input type="submit" name="action" value=" Submit ">
</form>
<script>
function clearset () {
document.cookie = "mysettings=; expires=Thu, 18 Dec 2013 12:00:00 UTC; secure; path=/";
window.location.reload();
}
</script>
现在cookie被删除,但是,重置仍然不会重置字段。我认为这是由于田地的原因;选择";基于存储的cookie值。即使cookie被删除,页面也不知道这一点。所以很可能需要重新加载?但是,即使重新加载,字段仍然不会重置!我不得不再次按下重置键来重置它。有没有一种方法可以自动重新加载和重置字段,或者完全避免重新加载?
既然你修复了cookie,我认为根据这里的form reset((方法w3学校重置表单值应该很容易
只需使用
document.getElementById("myForm").reset();
无需重新加载
我终于找到了解决方案!尽管听起来很简单;真";到reload((函数修复了它!
window.location.reload(true);
显然,Firefox和Chrome等浏览器并没有真正用reload((重新加载。添加该参数似乎可以强制重新加载。这一定是一个隐藏的特征