formStorage 基于jquery的一個插件(存儲表單中元素的狀態(tài)到本地)
原理很簡單,通過本地存儲機制(userData或者localStorage),存儲表單中元素的狀態(tài)到本地. 需要時可以把所存儲的狀態(tài)還原到表單元素上.
其中也用了json數(shù)據(jù)格式, 之前想對插件中所需的功能,從零開始寫,但是覺得太冗余,沒必要.就基于另外2個plugin現(xiàn)實.
分別是:jquery.json 和 jStorage. 這兩個插件本身實用小巧, api簡單易用, 其中jStorage在老一點的瀏覽器(不支持原生JSON操作)中需要用到j(luò)query.json或者json2
formStorage對jQuery對象擴展了3個方法, 對非form標簽無效.
存儲時調(diào)用: $('#myform').formStore(/*excludes*/), 此方法可以傳入一個包含表單元素id的數(shù)組,指定哪些元素狀態(tài)不需要存儲
還原時調(diào)用: $('#myform').formRestore()
清除存儲調(diào)用: $('#myform').destroyStore(), 之后在調(diào)用formRestore將不起作用, 因為對應(yīng)的本地存儲數(shù)據(jù)已經(jīng)刪除
NOTE: 為了還原時能定位元素, form和其表單元素都需要給予id, 保存時以form的id做為key, 所有表單元素的狀態(tài)組織成一個json串做為value.
其中input的type如果為button, file, submit, reset, password, image中的其中一個, 該標簽的狀態(tài)不會被存儲. 如果表單中有textarea,而且文本內(nèi)容較大,
不建議實用, 尤其在IE6,7中.
下面是一張各個瀏覽器本地存儲容量的參考圖(來自jStorage的主頁):

好吧, 貌似圖里面的瀏覽器老了點...
下面是個簡單的實例:
<form id="myform" action="">
<input id="name" name="name" type="text" value="" />
<input id="password" name="pwd" type="password" value="" />
<input type="checkbox" name="checkname" id="check1" value="checkvalue1" />
<input type="checkbox" name="checkname" id="check2" value="checkvalue2" />
<input type="radio" name="radioname" id="radio1" value="radiovalue1" />
<input type="radio" name="radioname" id="radio2" value="radiovalue2" />
<select name="selectoptions" id="select1">
<option value="option0">option0</option>
<option value="option1">option1</option>
<option value="option2">option2</option>
<option value="option3">option3</option>
</select>
<textarea name="area" id="area" cols="30" rows="10">
</textarea>
<button type="button" id="store">store</button>
<button type="button" id="restore">restore</button>
<button type="button" id="destroy">destroy</button>
</form>
實例中對應(yīng)的js如下:
$('#store, #restore, #destroy').on('click', function() {
if(this.id == 'store')
$('#myform').formStore();
else if(this.id == 'restore')
$('#myform').formRestore();
else
$('#myform').destroyStore();
});
最后, 如果你感興趣, 可以下載此插件(點擊下載formStorage), 解壓后, 直接運行里面的test.html即可, 源碼沒有壓縮. 因為時間較短, 或許有不夠完善的地方, 歡迎留言討論.
相關(guān)文章
jQuery操作Select選擇的Text和Value(獲取/設(shè)置/添加/刪除)
本文將詳細介紹下jQuery獲取/設(shè)置/添加/刪除Select選擇的Text和Value,感興趣的你可以參考下本文或許對你有所幫助2013-03-03
基于jQuery的試卷自動排版系統(tǒng)實現(xiàn)代碼
題目提干、選擇題的選項、說明文字可以包含多媒體信息(文字、圖片、列表、表格、視頻等等……)。2011-01-01
jQuery Validation Engine驗證控件調(diào)用外部函數(shù)驗證的方法
這篇文章主要介紹了jQuery Validation Engine驗證控件調(diào)用外部函數(shù)驗證的方法,需要的的朋友參考下吧2017-01-01
jQuery實現(xiàn)表格與ckeckbox的全選與單選功能
先給大家介紹下jQuery實現(xiàn)表格與ckeckbox的全選與單選功能,以及通過js實現(xiàn)隱藏與顯示銨鈕功能的實例代碼,需要的朋友參考下吧2016-11-11
jQuery獲得包含margin的outerWidth和outerHeight的方法
這篇文章主要介紹了jQuery獲得包含margin的outerWidth和outerHeight的方法,涉及jQuery中outerWidth及outerHeight方法的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-03-03

