发布一个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,一经查实,立即删除!

相关文章

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

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

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

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

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

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

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

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

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

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

mos 控制交流_电机控制器母线电容的设计选型

母线电容的定义在电机控制器中&#xff0c;电池包的直流电作为输入电源&#xff0c;需要通过直流母线与电机控制器连接&#xff0c;该方式叫DC-LINK或者直流支撑&#xff0c;其中的电容我们称之为母线电容或者支撑电容或者DC-Link电容。由于电机控制器从电池包得到有效值或者峰…

方法的返回值类型是object_JavaScript中如何判断类型

1. typeoftypeof (整数/小数/自然对数Math.LN2/正无穷大数Infinity) > numbertypeof NaN > numbertypeof (function(){}) > functiontypeof Math.sin > functiontypeof undefined > undefinedtypeof xxxx > stringtypeof > stringtypeof true/false >…

c++代码整洁之道pdf_别再问如何用Python提取PDF内容了!

公众号后台回复“图书“&#xff0c;了解更多号主新书内容作者&#xff1a;陈熹来源&#xff1a;早起Python导读大家好&#xff0c;在之前的办公自动化系列文章中我们已经详细介绍了&#x1f449;如何使用Python批量处理PDF文件&#xff0c;包括合并、拆分、水印、加密等操作。…

vim编辑模式_sublime vim模式和快捷键

vim的四种模式及模式切换vim一共有4个模式&#xff1a;正常模式 (Normal-mode) 插入模式 (Insert-mode)命令模式 (Command-mode)可视模式 (Visual-mode)正常模式启动vim后默认处于正常模式。不论位于什么模式&#xff0c;按下<Esc>键(有时需要按两下&#xff09;都会进入…

python读取txt文件_python实现读写txt文件的几种方法

一、读写模式&#xff1a;w&#xff1a;向文件中写入内容&#xff0c;w会清空原来文本内容a&#xff1a;向文件中追加内容r&#xff1a;从文件中读取内容wb&#xff1a;以二进制形式写入内容。rb&#xff1a;以二进制形式读文件内容ab&#xff1a;以二进制形式追加内容a、r、w&…

centos7升级openssh

注意&#xff1a; openssl版本(openssl版本要大于1.0.1&#xff0c;zlib版本要大于1.1.4) 一、安装依赖包 yum -y install gcc make perl # zlib zlib-devel yum install -y gcc openssl-devel pam-devel rpm-buildyum install telnet-ser…

java 复制对象_Java程序员必备:序列化全方位解析

前言 相信大家日常开发中&#xff0c;经常看到Java对象“implements Serializable”。那么&#xff0c;它到底有什么用呢&#xff1f;本文从以下几个角度来解析序列这一块知识点~什么是Java序列化&#xff1f;为什么需要序列化&#xff1f;序列化用途Java序列化常用API序列化的…

decimal类型对象里面定义什么类型_奥斯塔罗 单身开启桃花雷达 现阶段的我适合什么类型的对象?...

相信单身朋友总好奇下一位对象是否出现了&#xff1f;或是这么多人我该如何察觉下一位对象呢&#xff1f;如果单身的你正寻找对象中那就跟奥斯老师一起来看看下一位对象的个性与特征吧&#xff01;&#xff1c;&#xff1c;直觉选一张牌&#xff1e;>牌l选择到这组牌的朋友&…

win7系统怎么拷贝到u盘_Win7系统电脑无法识别U盘启动盘怎么办?

U盘想必大家不会陌生&#xff0c;通常会用来存储一些资料便于移动办公&#xff0c;有些小伙伴也会将其变更成U盘启动盘&#xff0c;帮助电脑重装系统。但是有用户反馈U盘插入电脑后无法识别启动&#xff0c;这要怎么办呢&#xff1f;其实很简单&#xff0c;下面小编就给大家带来…

数据库日志

很多时候需要追踪记录的变更情况&#xff0c;AX里有数据库日志来完成这件事情&#xff0c;操作路径为:系统管理->设置->数据库日志.如果按照向导添加后没看到相应的记录&#xff0c;可以尝试如下方法&#xff0c;选中生命科学电子签名。系统管理->设置->系统->配…

Nginx的应用之安装配置

一、Nginx简述 Nginx是一个开源且高性能、可靠的Http Web服务、代理服务。 开源: 直接获取源代码 高性能: 支持海量并发 可靠: 服务稳定 我们为什么选择 Nginx服务 Nginx非常轻量 功能模块少 (源代码仅保留http与核心模块代码,其余不够核心代码会作为插件来安装) 代码模块化 (易…

包含以下字段的 struct 怎么解决_S7-300/400进阶笔记4-2:STEP7的“结构”STRUCT数据类型的用法...

复杂数据类型是由基本数据类型通过一定的规则&#xff0c;有机结合在一起&#xff0c;形成的新的、复杂数据类型&#xff0c;STEP7中定义了以下几种复合数据类型&#xff1a;本文&#xff0c;我们介绍一下结构——STRUCT。STRUCT表示由一个不同数据类型的数据组合在一起&#x…

springboot a service调用b service_CaaS: 内容是新的基础设施 Content-as-a-Service

内容是每家企业的必争之地&#xff0c;根据 CMI 的数据报告&#xff0c;88% 的 B2B 企业每天至少产生一篇内容。内容正在成为新的基础设施&#xff0c;Content as a Service 可以被简单理解为一种 CMS&#xff08;Content Management Systen&#xff0c;内容管理系统&#xff0…

javascript网页特效_南通建网站哪些,网页设计维护

无锡邦程信息科技有限公司为您详细解读rKXvd南通建网站哪些的相关知识与详情&#xff0c;#末网页设想师根据差别站点的内容微风格&#xff0c;设想出完美的网页效果图。内容填充&#xff1a;不论是个人网站还是企业网站&#xff0c;都必需从内容那个动身点考虑&#xff0c;一个…

request用法_虚拟语气用法总结

虚拟语气主要指的的是带有非真实条件状语从句的复合句&#xff0c;表达的是说话人的遗憾后悔的语气&#xff0c;愿望以及建议&#xff0c;命令&#xff0c;要求等等的情感&#xff0c;往往说的是与事实相反或者没办法实现改变的东西。虚拟语气主要表现为在对过去现在或者将来的…