16-6 WEB存储-通讯录实战
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>HTML5</title> <script type="text/javascript"> /*联系人数据*/
function Person(username,mobile,qq) {
this.username = username;
this.mobile = mobile;
this.qq = qq;
} /*增加联系人*/
function add() {
var username = document.form1.username;
var mobile = document.form1.mobile;
var qq = document.form1.qq; //判断联系人姓名是否已经存在
if ( checkUsername(username.value) ) {
alert('联系人已存在');
return;
} var p = new Person(username.value,mobile.value,qq.value);
var jsonStr = JSON.stringify(p); localStorage.setItem(p.username,jsonStr);
alert('联系人增加成功');
} /*修改联系人*/
function update() {
var username = document.form1.username;
var mobile = document.form1.mobile;
var qq = document.form1.qq; //判断联系人姓名是否已经存在
if ( !checkUsername(username.value) ) {
alert('联系人不存在');
return;
} var p = new Person(username.value,mobile.value,qq.value);
var jsonStr = JSON.stringify(p); localStorage.setItem(p.username,jsonStr);
alert('联系人修改成功');
} /*删除联系人*/
function del() {
var username = document.form1.username; //判断联系人姓名是否已经存在
if ( !checkUsername(username.value) ) {
alert('联系人不存在');
return;
} localStorage.removeItem(username.value);
alert('联系人删除成功');
} /*查询联系人*/
function queryByUsername() {
var username = document.form1.username;
var jsonObj = checkUsername(username.value); if (jsonObj) {
document.form1.mobile.value = jsonObj.mobile;
document.form1.qq.value = jsonObj.qq;
} else {
alert('联系人不存在');
}
} /*判断联系人是否存在,存在返回数据,不存在返回null*/
function checkUsername(usernameStr) {
var username = document.form1.username; for (var i = 0; i < localStorage.length;i ++) {
var key = localStorage.key(i);
var jsonStr = localStorage.getItem(key);
var jsonObj = JSON.parse(jsonStr); if (jsonObj.username == usernameStr)
return jsonObj;
} return null;
}
</script> </head> <body>
<form name="form1" method="post" action="">
<table width="500" border="1" cellpadding="5" cellspacing="0">
<tr>
<td colspan="2" align="center" bgcolor="#FFFF00">通讯录</td>
</tr>
<tr>
<td width="80" align="center">姓名</td>
<td width="204"><input type="text" name="username" id="username"></td>
</tr>
<tr>
<td align="center">手机号码</td>
<td><input type="tel" name="mobile" id="mobile"></td>
</tr>
<tr>
<td align="center">QQ号码</td>
<td><input type="number" name="qq" id="qq"></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="button" name="button" id="button" value="增加到联系人" onClick="add();">
<input type="button" name="button2" id="button2" value="查询联系人" onClick="query();">
<input type="button" name="button4" id="button4" value="修改联系人" onClick="update();">
<input type="button" name="button3" id="button3" value="删除联系人" onClick="del();">
<input type="reset" value="清空">
</td>
</tr>
</table>
</form>
</body>
</html>
16-6 WEB存储-通讯录实战的更多相关文章
- h5-29-WEB存储-通讯录实战.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- HTML5分析实战Web存储机制(Web Storage)
Web Storage它是Key-Value在持久性数据存储的形式.Web Storage为了克服cookie把所引起的一些限制.当数据需要严格格控制client准时,没有必要不断地发回数据serve ...
- Selenium Web 自动化 - 项目实战(三)
Selenium Web 自动化 - 项目实战(三) 2016-08-10 目录 1 关键字驱动概述2 框架更改总览3 框架更改详解 3.1 解析新增页面目录 3.2 解析新增测试用例目录 3. ...
- 【WEB API项目实战干货系列】- API登录与身份验证(三)
上一篇: [WEB API项目实战干货系列]- 接口文档与在线测试(二) 这篇我们主要来介绍我们如何在API项目中完成API的登录及身份认证. 所以这篇会分为两部分, 登录API, API身份验证. ...
- OC:通讯录实战
实战(使用OC的知识制作一个简易通讯录) //语法糖.笑笑语法 // NSString * string = [NSString stringWithFormat:@"string" ...
- Selenium Web 自动化 - 项目实战环境准备
Selenium Web 自动化 - 项目实战环境准备 2016-08-29 目录 1 部署TestNG 1.1 安装TestNG 1.2 添加TestNG类库2 部署Maven 2.1 mav ...
- Selenium Web 自动化 - 项目实战(二)
Selenium Web 自动化 - 项目实战(二) 2016-08-08 什么是数据驱动?简答的理解就是测试数据决定了测试结果,这就是所谓数据驱动.数据驱动包含了数据,他就是测试数据,在自动化领域里 ...
- web 存储方式汇总:Cookies,Session, Web SQL; Web Storage(LocalStorage ,SessionStorage),IndexedDB,Application Cache,Cache Storage
1 1 1 web 存储方式汇总: 旧的方式: Cookies; Session; Web SQL; 新的方式 HTML5 : Web Storage(LocalStorage ,SessionSto ...
- html5的web存储
在html5标准之前,web存储信息需要cookie来完成,但是cookie不适合大量数据存储.因为需要等待服务器响应,所以速度慢/效率低. 本地存储的特点: localstorage是仅存储在用户的 ...
随机推荐
- hdoj 4790 Just Random 【数学】
题目:hdoj 4790 Just Random 题意:给你两个闭区间[a,b],[c,d],分别从中等可能的跳出 x 和 y ,求(x+y)%p == m的概率 分析: 假如是[3,5] [4,7] ...
- SQL yog过期后教你怎么让他不过期
打开注册表 安装sqlyog后,进入注册表编辑器,进入\HEYK_CURRENT_USER\Software\,找到以{}括起来的那项直接干掉! 1, regedit 2,修改 3,
- iOS + Nodejs SSL/Https双向认证
移动互联网的大力发展,安全越来越重要. 什么是双向认证呢?双向认证就是client要验证server的合法性,同一时候server也要验证client的合法性. 这样两方都相互验证,提高安全性. 关于 ...
- java的自动类型转换
package BaseType; /*java的自动类型提升和窄化转换 * * 1. 当一个char,short,byte类型的变量被赋值给一个超出他自身能表示的最大范围的数,java会自动将该数转 ...
- css3最新版中文参考手册在线浏览
对于CSS 3.0,它对于我们Web设计人员来说不只是新奇的技术,更重要的是这些全新概念的Web应用给我们的设计开发提高了效率以及更多的无限可能性,我们将不必再依赖图片或者 Javascript 去完 ...
- SQLServer删除数据库
删除时提示: 网上找了一段: USE MASTER GO DECLARE @dbname SYSNAME SET @dbname = 'shujk' --这个是要删除的数据库库名 ) DECLARE ...
- 【bzoj1071】[SCOI2007]组队
sum= A*h+B*s排序 然后枚举height和speed的最小值 然后用两个指针:先枚举speed最小值,然后一边枚举v的最小值一边查询符合条件的人数. #include<algorith ...
- Common non-standard response fields
https://en.wikipedia.org/wiki/List_of_HTTP_header_fields#cite_note-52 Common non-standard response f ...
- WebService注解汇总
Web Service 元数据注释(JSR 181) @WebService 1.serviceName: 对外发布的服务名,指定 Web Service 的服务名称:wsdl:service.缺省值 ...
- linux下nginx模块开发入门
本文模块编写参考http://blog.codinglabs.org/articles/intro-of-nginx-module-development.html 之前讲了nginx的安装,算是对n ...