簡體   English   中英

在Chrome中重新加載頁面時如何防止表單輸入重置?

[英]How to prevent the reset of form inputs when reloading a page in Chrome?

我正在構建一個Web應用程序,該應用程序可能會(偶爾)重新加載頁面,以便使用表達式語言來更新頁面上顯示的某些信息。 在Firefox中,一切正常,但是在Chrome中,每次重新加載頁面時,輸入字段中的所有內容都會丟失,並且表單將重置為空白。 對於用戶來說,這太煩人了,用戶必須再次鍵入所有丟失的內容。 有什么方法可以在Chrome中復制與使用純HTML的Firefox相同的行為,還是必須使用某些Javascript? 提前致謝。

可以說這是您的代碼:

<form id="formId" action="" method="post">
    <input type="hidden" id="hiddenAction" name="hiddenAction" value="" />
    <input type="text" id="firstName" name="firstName" value="" />
</form>

如果您使用的是表格,只需使用JavaScript提交表格即可,而無需刷新頁面。

如果您看到我在表格的開頭添加了一個hidden input 用於跟蹤提交動作

$("#formId #hiddenAction").val("refreshed") ;
$("#formId").submit() ;

然后在頁面開頭的php中輸入以下內容:

<?php
    $firstName = "" ;
    if (isset($_POST["hiddenAction"]) && $_POST["hiddenAction"] == "refreshed") { //When the hidden action is set to "refreshed" then we know that this is coming from refreshing the page
        $firstName = isset($_POST["firstName"]) ? $_POST["firstName"] : "" ; //Of course you have to escape the string and strip it from any pure html tags
    }
?>

然后在您的<html>代碼中,分別更改所有輸入標簽及其相關值以匹配以下內容:

<input type="text" id="firstName" name="firstName" value="<?php echo $firstName ?>" />

您必須使用一些小Javascript ..

例如將數據保存在Cookie /本地存儲等中...

暫無
暫無

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

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