发布一个jQuery插件:formStorage

中午休息时,没有睡意,没事写了个jquery插件:formStorage.

原理很简单,通过本地存储机制(userData或者localStorage),存储表单中元素的状态到本地. 需要时可以把所存储的状态还原到表单元素上.

其中也用了json数据格式, 之前想对插件中所需的功能,从零开始写,但是觉得太冗余,没必要.就基于另外2个plugin现实.

分别是:jquery.json 和 jStorage. 这两个插件本身实用小巧, api简单易用, 其中jStorage在老一点的浏览器(不支持原生JSON操作)中需要用到jquery.json或者json2

formStorage对jQuery对象扩展了3个方法, 对非form标签无效.

存储时调用: $('#myform').formStore(/*excludes*/), 此方法可以传入一个包含表单元素id的数组,指定哪些元素状态不需要存储

还原时调用: $('#myform').formRestore()

清除存储调用: $('#myform').destroyStore(), 之后在调用formRestore将不起作用, 因为对应的本地存储数据已经删除

NOTE: 为了还原时能定位元素, form和其表单元素都需要给予id, 保存时以form的id做为key, 所有表单元素的状态组织成一个json串做为value.

其中input的type如果为button, file, submit, reset, password, image中的其中一个, 该标签的状态不会被存储. 如果表单中有textarea,而且文本内容较大,

不建议实用, 尤其在IE6,7中.

下面是一张各个浏览器本地存储容量的参考图(来自jStorage的主页):

好吧, 貌似图里面的浏览器老了点...

下面是个简单的实例:

 1 <form id="myform" action="">
 2         <input id="name" name="name" type="text" value="" />
 3         <input id="password" name="pwd" type="password" value="" />
 4         
 5         <input type="checkbox" name="checkname" id="check1" value="checkvalue1" />
 6         <input type="checkbox" name="checkname" id="check2" value="checkvalue2" />
 7         
 8         <input type="radio" name="radioname" id="radio1" value="radiovalue1" />
 9         <input type="radio" name="radioname" id="radio2" value="radiovalue2" />
10         
11         <select name="selectoptions" id="select1">
12             <option value="option0">option0</option>
13             <option value="option1">option1</option>
14             <option value="option2">option2</option>
15             <option value="option3">option3</option>
16         </select>
17         
18         <textarea name="area" id="area" cols="30" rows="10">
19         </textarea>
20         
21         <button type="button" id="store">store</button>
22         <button type="button" id="restore">restore</button>
23         <button type="button" id="destroy">destroy</button>
24     </form>

 实例中对应的js如下:

1 $('#store, #restore, #destroy').on('click', function() {
2     if(this.id == 'store')
3         $('#myform').formStore();
4     else if(this.id == 'restore')
5         $('#myform').formRestore();
6     else 
7         $('#myform').destroyStore();
8 });

 最后, 如果你感兴趣, 可以下载此插件(点击下载formStorage.zip), 解压后, 直接运行里面的test.html即可, 源码没有压缩. 因为时间较短, 或许有不够完善的地方,  欢迎留言讨论.

转载于:https://www.cnblogs.com/AndyWithPassion/archive/2012/01/18/jQuery_form_storage.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/410128.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

简述python是怎么处理异常的-Python异常处理知识点总结

python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误。你可以使用该功能来调试python程序。 异常处理: 本站Python教程会具体介绍。 断言(Assertions):本站Python教程会具体介绍。 python标准异常 异常名称 描述 BaseException 所有异常的基类 SystemExit…

[html] html如何启动本地的exe应用?

[html] html如何启动本地的exe应用&#xff1f; 一般采用自定义浏览器协议的方式实现,可跨平台. 需要exe配合,修改目标机器的注册表. 如果要检测客户端是否已经安装对应的程序,可配合custom-protocol-detection这个项目. 关键词: detect browser custom proctocl个人简介 我是…

判断一个java对象中的属性是否都未赋值_100道Java基础面试题(一)

100道Java基础面试题(一)未来大家将步入职场&#xff0c;面试的时候面试官还会问大家一些Java相关的问题。小编整理出100道非常实用的面试题目&#xff0c;可以帮助双体的小伙伴应对面试&#xff0c;我们一起来看看都有哪些吧&#xff01;1.什么是B/S架构&#xff1f;什么是C/S…

51学吧

一个很不错的自学网站&#xff1a;51学吧。 里面的教程挺多的。 以后经常性的看一看。 每天抽出一些时间&#xff0c;好好学习一下。 每天进步一点点&#xff0c;坚持下去。 转载于:https://www.cnblogs.com/kuixing1986/archive/2013/03/02/2940236.html

Ubuntu 手动安装JDK

终于成功手动安装了JDK&#xff0c;在此分享一下&#xff0c;希望所有开始使用ubuntu的新手能够用上自己所需版本的JDK。 1.下载JD&#xff1a; http://www.oracle.com/technetwork/java/javase/downloads/index.html 2.将下载的文件copy到自己指定的目录 3.打开终端&#xff0…

python中的defaultdict_简介Python的collections模块中defaultdict类型的用法

defaultdict 主要用来需要对 value 做初始化的情形。对于字典来说&#xff0c;key 必须是 hashable&#xff0c;immutable&#xff0c;unique 的数据&#xff0c;而 value 可以是任意的数据类型。如果 value 是 list&#xff0c;dict 等数据类型&#xff0c;在使用之前必须初始…

电脑cpu温度过高怎么办_网络资讯:电脑cpu占用过高处理办法

今天来说一下电脑cpu占用过高处理办法这方面的一些讯息&#xff0c;不少朋友对电脑cpu占用过高处理办法这方面的一些讯息颇感兴趣的&#xff0c;小编今天就整理了一些信息&#xff0c;希望对有需要的朋友有所帮助。1、安装并使用杀毒软件全面杀毒;2、优化系统自启动软件;3、把软…

[html] 举例说明图片懒加载的方案有哪些?

[html] 举例说明图片懒加载的方案有哪些&#xff1f; 利用 getBoundingClientRect() 这个 API 获取图片元素相对于视口的位置&#xff0c;来判断是否需要加载图片利用 IntersectionObserverEntry接口 获取目标元素与容器的相交状态个人简介 我是歌谣&#xff0c;欢迎和大家一起…

深度学习之数学基础(临时记录)

深度学习之数学基础&#xff08;数值计算&#xff09; 深度学习之数学基础&#xff08;线性代数篇&#xff09; 深度学习之数学基础&#xff08;概率与统计&#xff09; 转载于:https://www.cnblogs.com/tlz888/p/11381484.html

[html] html5的游戏引擎你了解多少?都有哪些比较好用的引擎呢?

[html] html5的游戏引擎你了解多少&#xff1f;都有哪些比较好用的引擎呢&#xff1f; 最近接了个小项目 接触了一个游戏引擎 Phaser 主攻2D Phaser用的别家的内核把 自己加壳子其他的只是看过介绍个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&am…

扩展欧几里德算法

问题&#xff1a;对于正整数a,b,求整数x,y满足&#xff1a; axbygcd(a,b) 解法&#xff1a;ExtandedGCD 已知gcd(a,b)gcd(b,a mod b); 设gcd(a,b)d 假设已求出x1,y1满足bx1(a mod b)y1d(*) 因为a mod ba-(a div b)*b(**) (**)代入(*)得&#xff1a; ay1(x1-(a div b)*y1)bd 所以…

python 持续集成 教程_jenkins+python自动化测试持续集成教程

一、首先我们安装Jenkins&#xff0c;我这里采用的是.msi应用程序&#xff0c;根据提示进行安装(傻瓜式)&#xff0c;最后会打开默认的网页地址&#xff1a;http://localhost:8080如果端口有冲突&#xff0c;可以去Jenkins的安装目录下的这个文件去改端口&#xff1a;二、进入J…

大型企业用什么orm_生产企业ERP有什么用

原标题&#xff1a;生产企业ERP有什么用生产企业ERP有什么用&#xff1f;随着我国经济的快速发展&#xff0c;这促使了许多企业或转型开发新的业务模式&#xff0c;以更快速度迈向新兴前沿领域。在这样的环境下&#xff0c;许多的生产型企业对ERP系统进行了实施。生产企业ERP到…

使用Asp.net mvc + Linq + mvc_scaffold_gen_setup.exe 生成一个完整的家庭帐册大管家程序 之一...

真得是完全生成的&#xff0c;mvc_scaffold_gen_setup.exe 这个工具确实挺好用。 这几天潜心学习了园子里众多的文章&#xff0c;摸索着生成了这么一个完整的例子...还没来的及仔细分析&#xff0c;要下班了&#xff0c;先发上来&#xff0c;晚上继续...下载示例程序及数据库脚…

[html] 说说html5手势检测原理是什么?

[html] 说说html5手势检测原理是什么&#xff1f; 手势检测的关键是用 touchstart&#xff0c;touchmove&#xff0c;touchend 三个事件对手势进行分解个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论…

《程序员羊皮卷》第三章 初入职场第一年

万分重视自己的第一份工作 根据某杂志在2009年6月的统计&#xff0c;54.7%的父母要求孩子读到博士&#xff0c;83.6%要求孩子考试得分在前15名。母亲对孩子说得最多的一句话是“好好学习”、其次多的是“功课做了没有”&#xff0c;就足见家长对孩子学习的重视。在这里我想说的…

怎么测试网络带宽_性能测试案例与经验分享

性能基准测试性能基准测试&#xff0c;通常被称为 Performance Benchmark Test&#xff0c;是每次对外发布产品版本前必须要完成的测试类型。性能基准测试&#xff0c;会基于固定的硬件环境和部署架构&#xff08;比如专用的服务器、固定的专用网络环境、固定大小的集群规模、相…

微服务跨数据库联合查询_MySQL数据库联合查询

大家好&#xff0c;我是anyux。数据库联表查询很重要&#xff0c;内联查询更是尤为重要。需要将school.sql文件导入到数据库中数据库多表联合查询&#xff0c;school库下表的逻辑结构关系都在下图中。可以通过驱动表加子表配合实现所有查询要求。统计zhang3,学习了几门课select…

ASP正则表达式方面小笔记

比较随意的一些&#xff21;&#xff33;&#xff30;正则表达式方面的笔记&#xff08;或学习小甜品&#xff09; <% 方法说明:Set RsObj Server.CreateObject快捷Function [&rg](ByRef rgRef, ByVal pe, ByVal ig, ByVal gb, ByVal [?Casually]) Call RgNew(rgRef,…

[html] 举例说明原生的html组件有哪些?

[html] 举例说明原生的html组件有哪些&#xff1f; <dialog><progress>……个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题