使用jquery读取html5 localstorage的值的方法


Posted in Javascript onJanuary 04, 2013

在HTML 5中,localstorage是个不错的东西,在支持localstorage的浏览器中, 能持久化用户表单的输入,即使关掉浏览器,下次重新打开浏览器访问,也能读出其值, 下面给出的例子是使用jquery 在每次表单加载的时候,读localstorage的值,而在表单每次提交时则清楚其值的例子
首先是一个表单

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="utf-8"> 
<title>HTML5 Local Storage Example</title> 
<!-- include Bootstrap CSS for layout --> 
<link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.2.1/css/bootstrap-combined.min.css" rel="stylesheet"> 
</head> 
<body> 
<div class="container"> 
<h1>HTML5 Local Storage Example</h1> 
<form method="post" class="form-horizontal"> 
<fieldset> 
<legend>Enquiry Form</legend> 
<div class="control-group"> 
<label class="control-label" for="type">Type of enquiry</label> 
<div class="controls"> 
<select name="type" id="type"> 
<option value="">Please select</option> 
<option value="general">General</option> 
<option value="sales">Sales</option> 
<option value="support">Support</option> 
</select> 
</div> 
</div> 
<div class="control-group"> 
<label class="control-label" for="name">Name</label> 
<div class="controls"> 
<input class="input-xlarge" type="text" name="name" id="name" value="" maxlength="50"> 
</div> 
</div> 
<div class="control-group"> 
<label class="control-label" for="email">Email Address</label> 
<div class="controls"> 
<input class="input-xlarge" type="text" name="email" id="email" value="" maxlength="150"> 
</div> 
</div> 
<div class="control-group"> 
<label class="control-label" for="message">Message</label> 
<div class="controls"> 
<textarea class="input-xlarge" name="message" id="message"></textarea> 
</div> 
</div> 
<div class="control-group"> 
<div class="controls"> 
<label class="checkbox"> 
<input name="subscribe" id="subscribe" type="checkbox"> 
Subscribe to our newsletter 
</label> 
</div> 
</div> 
</fieldset> 
<div class="form-actions"> 
<input type="submit" name="submit" id="submit" value="Send" class="btn btn-primary"> 
</div> 
</form> 
</div>

然后是js部分代码:
<script src="//code.jquery.com/jquery-latest.js"></script> 
<script> 
$(document).ready(function () { 
/* 
* 判断是否支持localstorage 
*/ 
if (localStorage) { 
/* 
* 读出localstorage中的值 
*/ 
if (localStorage.type) { 
$("#type").find("option[value=" + localStorage.type + "]").attr("selected", true); 
} 
if (localStorage.name) { 
$("#name").val(localStorage.name); 
} 
if (localStorage.email) { 
$("#email").val(localStorage.email); 
} 
if (localStorage.message) { 
$("#message").val(localStorage.message); 
} 
if (localStorage.subscribe === "checked") { 
$("#subscribe").attr("checked", "checked"); 
} 
/* 
* 当表单中的值改变时,localstorage的值也改变 
*/ 
$("input[type=text],select,textarea").change(function(){ 
$this = $(this); 
localStorage[$this.attr("name")] = $this.val(); 
}); 
$("input[type=checkbox]").change(function(){ 
$this = $(this); 
localStorage[$this.attr("name")] = $this.attr("checked"); 
}); 
$("form") 
/* 
* 如果表单提交,则调用clear方法 
*/ 
.submit(function(){ 
localStorage.clear(); 
}) 
.change(function(){ 
console.log(localStorage); 
}); 
} 
});
Javascript 相关文章推荐
Javascript remove 自定义数组删除方法
Oct 20 Javascript
常用一些Javascript判断函数
Aug 14 Javascript
ExtJS4利根据登录后不同的角色分配不同的树形菜单
May 02 Javascript
js右下角弹出提示框示例代码
Jan 12 Javascript
JQuery实现动态操作表格
Jan 11 Javascript
jQuery的$.extend 浅拷贝与深拷贝
Mar 08 Javascript
原生js jquery ajax请求以及jsonp的调用方法
Aug 04 jQuery
Angular5中调用第三方js插件的方法
Feb 26 Javascript
vue如何解决循环引用组件报错的问题
Sep 22 Javascript
Vue.js自定义指令学习使用详解
Oct 19 Javascript
vue keep-alive实现多组件嵌套中个别组件存活不销毁的操作
Oct 30 Javascript
vue基于Echarts的拖拽数据可视化功能实现
Dec 04 Vue.js
表单的焦点顺序tabindex和对应enter键提交
Jan 04 #Javascript
屏蔽网页右键复制和ctrl+c复制的js代码
Jan 04 #Javascript
js 获取坐标 通过JS得到当前焦点(鼠标)的坐标属性
Jan 04 #Javascript
html a标签-超链接中confirm方法使用介绍
Jan 04 #Javascript
密码强度检测效果实现原理与代码
Jan 04 #Javascript
禁止你的左键复制实用技巧
Jan 04 #Javascript
单击按钮显示隐藏子菜单经典案例
Jan 04 #Javascript
You might like
joomla内置的表单验证功能使用方法
2010/06/11 PHP
php强制下载类型的实现代码
2011/04/21 PHP
php数组函数序列之array_unshift() 在数组开头插入一个或多个元素
2011/11/07 PHP
php socket实现的聊天室代码分享
2014/08/16 PHP
PHP微信开发之二维码生成类
2015/06/26 PHP
PHP文件操作之获取目录下文件与计算相对路径的方法
2016/01/08 PHP
php实现PDO中捕获SQL语句错误的方法
2017/02/16 PHP
2017年最新PHP经典面试题目汇总(上篇)
2017/03/17 PHP
php动态读取数据清除最右边距的方法
2017/04/12 PHP
php菜单/评论数据递归分级算法的实现方法
2019/08/01 PHP
javascript 选择文件夹对话框(web)
2009/07/07 Javascript
Angular.JS通过指令操作DOM的方法
2017/05/10 Javascript
JS实现的邮箱提示补全效果示例
2018/01/30 Javascript
老生常谈JS中的继承及实现代码
2018/07/06 Javascript
详解Vue实战指南之依赖注入(provide/inject)
2018/11/13 Javascript
JavaScript中构造函数与原型链之间的关系详解
2019/02/25 Javascript
jQuery利用cookie 实现本地收藏功能(不重复无需多次命名)
2019/11/07 jQuery
浅谈vue 锚点指令v-anchor的使用
2019/11/13 Javascript
简述Python中的面向对象编程的概念
2015/04/27 Python
Python中pillow知识点学习
2018/04/30 Python
Django基础知识 URL路由系统详解
2019/07/18 Python
python多线程与多进程及其区别详解
2019/08/08 Python
Python3如何在服务器打印资产信息
2020/08/27 Python
M1芯片安装python3.9.1的实现
2021/02/02 Python
css3 flex实现div内容水平垂直居中的几种方法
2020/03/27 HTML / CSS
详解使用HTML5的classList属性操作CSS类
2017/10/13 HTML / CSS
Clearly澳大利亚:购买眼镜、太阳镜和隐形眼镜
2018/04/26 全球购物
TripAdvisor台湾:全球最大旅游网站
2018/08/26 全球购物
美国二手复古奢侈品包包购物网站:LXRandCo
2019/06/18 全球购物
作风建设年活动实施方案
2014/10/24 职场文书
公司股份合作协议书
2014/12/07 职场文书
玄武湖导游词
2015/02/05 职场文书
我的生日感言
2015/08/03 职场文书
CSS中em的正确打开方式详解
2021/04/08 HTML / CSS
python开发的自动化运维工具ansible详解
2021/08/07 Python
Netty客户端接入流程NioSocketChannel创建解析
2022/03/25 Java/Android