如何在Chrome中重新加载页面时阻止重置表单输入?

时间:2017-10-12 06:02:09

标签: javascript jquery html css google-chrome

我正在构建一个可能(偶尔)重新加载页面的Web应用程序,以便使用表达式语言更新页面上显示的一些信息。在Firefox中,一切正常,但在Chrome中,每次重新加载页面时,输入字段中的所有内容都将丢失,表单将重置为空白。这对于用户来说太烦人了,用户必须再次输入丢失的所有内容。有没有办法在Chrome中复制与使用纯HTML的Firefox相同的行为,还是有必要使用一些Javascript?提前谢谢。

2 个答案:

答案 0 :(得分:1)

让我们说这是你的代码:

<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 ?>" />

答案 1 :(得分:0)

你必须使用一些小的Javascript ..

就像在Cookie /本地存储/等等中保存数据一样......