簡體   English   中英

單擊重置按鈕后如何重置表單並刪除 Cookie?

[英]How to reset form and delete Cookie after clicking on reset button?

我將下拉選擇保存在名為“mysettings”的 cookie 中。 但是,在第一次運行程序 (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/";'/>  &nbsp;&nbsp;
    <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()">  &nbsp;&nbsp;
    <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 被刪除,頁面也不知道這一點。 所以最有可能需要重新加載? 但是即使重新加載,字段仍然沒有重置 我必須再次按重置鍵才能重置它? 有沒有辦法自動重新加載和重置字段或完全避免重新加載?

既然你修復了 cookies,我認為按照這里的Form reset() Method w3 school重置表單值應該很容易

只需使用

document.getElementById("myForm").reset();

無需重新加載

我終於找到了一個解決方案,聽起來很簡單,在 reload() function 中添加一個“真”來修復它!

window.location.reload(true);

顯然,Firefox 和 Chrome 等並沒有真正用 reload() 重新加載。 添加該參數似乎會強制重新加載。 應該是隱藏功能

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM