使用localStorage存储表单数据

吕旷
• 阅读 5122

当我们在页面中填写表单时,常常希望在页面发生跳转或刷新时能够保留之前填写的数据。H5中的Web Storage API可以帮助我们在客户端上存储填写的表单数据。
下面通过一个例子来说明用法。

HTML代码

<form>
    <p>
      <label for="name">姓名</label>
      <input type="text" id="name">
    </p>
    <p>
      <input type="radio" name="sex" id="male" value="先生">先生
      <input type="radio" name="sex" id="female" value="女士">女士
    </p>
    <p>
      <label for="phone">联系电话</label>
      <input type="number" id="phone">
    </p>

    <select name="province" id="province">
      <option value="jiangsu">江苏</option>
      <option value="anhui">安徽</option>
      <option value="hunan">湖南</option>
      <option value="fujian">福建</option>
    </select>
    <p>
        <input type="submit" id="formSave">
    </p>
  </form>

javascript代码

//别忘了先引入jquery
<script src="jquery-3.2.1.js"></script>
  <script>
    //在存储中设置值
    $("#formSave").click(function () {
      //存储输入框中填入的值
      localStorage.setItem("name", $("#name").val());
      localStorage.setItem("phone", $("#phone").val());
      localStorage.setItem("province", $("#province").val());
      //存储选中的radio
      var k_val = $(":radio[name=sex]:checked").val();
      localStorage.setItem("k_val", k_val);
    })
    //从存储中获取值
    $(
      function myStorage() {
        //刷新后重新获取输入框中填入的值
        var name = localStorage.getItem("name");
        var phone = localStorage.getItem("phone");
        var province = localStorage.getItem("province");
        //将重新获取的值显示到表单元素中
        $("#name").val(name);
        $("#phone").val(phone);
        $("#province").val(province);
        //重新读取选中的radio
        $(":radio").removeAttr("checked");//这里很重要
        var kk_val = localStorage.getItem("k_val");; 
        $(':radio').each(function () {
          if ($(this).val() == kk_val) {
            $(this).prop("checked", true);
          }
        })
      }
    )
    myStorage();
  </script>

这里主要用到了localStorage.setItem()和localStorage.getItem(),分别用来设置需要存储的值和获取已存储的值。

点赞
收藏
评论区
推荐文章
Souleigh ✨ Souleigh ✨
4年前
Javascript本地存储 - 入门指南
在讲解之前,我们需要明白之间的差别serversidestorage,并clientsidestorage当涉及到网站和应用程序。服务器端意味着我们使用数据库将数据存储在服务器上,客户端包含JavaScriptAPI,这些API可让您在客户端(在浏览器中)存储数据。什么是本地存储?简而言之,localstorage可以将其与数据库进行比较,只
Stella981 Stella981
3年前
ASP.NET WebApi服务接口如何防止重复请求实现HTTP幂等性
一、背景描述与课程介绍明人不说暗话,跟着阿笨一起玩WebApi。在我们平时开发项目中可能会出现下面这些情况;1)、由于用户误操作,多次点击网页表单提交按钮。由于网速等原因造成页面卡顿,用户重复刷新提交页面。黑客或恶意用户使用postman等工具重复恶意提交表单(攻击网站)。这些情况都会导致表单重复提交,造成数据重复
Stella981 Stella981
3年前
Spring Security使用详解6(自定义登录页、接口、结果)
在之前的所有样例中,登录表单一直都是使用SpringSecurity提供的默认登录页,登录成功后也是默认的页面跳转。有时我们想要使用自定义的登录页,或者在前后端分离的开发方式中,前后端的数据交互通过JSON进行,这时登录成功后就不是页面跳转了,而是一段JSON提示。下面通过样例演示如何进行登录表单的个性化配置。六、自定义登录页面、
Stella981 Stella981
3年前
Django 表单处理流程
Django的表单处理:视图获取请求,执行所需的任何操作,包括从模型中读取数据,然后生成并返回HTML页面(从模板中),我们传递一个包含要显示的数据的上下文。使事情变得更复杂的是,服务器还需要能够处理用户提供的数据,并在出现任何错误时,重新显示页面。下面显示了Django如何处理表单请求的流程图,从对包含表单的页面的请求开始(以绿色显示):!(
liam liam
1年前
了解 x-www-form-urlencoded
在开发网站时,我们常常需要将用户填写的表单信息发送给服务器,而其中一种被广泛接受和使用的方法是使用application/xwwwformurlencoded编码格式。本篇文章旨在探讨该编码格式的细节和应用场景,帮助开发者更有效地管理和发送表单数据。探究x
taskbuilder taskbuilder
3个月前
TaskBuilder数据添加页面前后端交互原理解析
在TaskBuilder内打开学员管理项目前端文件里的add.tfp页面,下面以这个文件为例介绍一下数据添加页面如何实现前后端的数据交互。如果要将页面里输入项的数据提交到后台,需要将这些输入项都放到表单组件中,然后通过表单组件实现数据的统一提交,具体原理如