原生js實(shí)現(xiàn)form表單序列化的方法
當(dāng)我們有form表單而且里面的表單元素較多時(shí),咱們總不能一個(gè)個(gè)去獲取表單元素內(nèi)的值來進(jìn)行拼接吧!這樣會(huì)很讓人蛋疼!為了方便與后臺(tái)交互并且提高自己的開發(fā)效率,并且不讓你蛋疼;我們一起用原生來寫一個(gè)表單序列化方法:
先介紹一下jquery中有相應(yīng)的表單序列化的方法:
1.serialize()方法
格式:var data = $("form").serialize();
功能:將表單內(nèi)容序列化成一個(gè)字符串。
這樣在ajax提交表單數(shù)據(jù)時(shí),就不用一一列舉出每一個(gè)參數(shù)。只需將data參數(shù)設(shè)置為 $("form").serialize() 即可。
2.serializeArray()方法
格式:var jsonData = $("form").serializeArray();
功能:將頁面表單序列化成一個(gè)JSON結(jié)構(gòu)的對(duì)象。注意不是JSON字符串。
比如,[{"name":"lihui", "age":"20"},{...}] 獲取數(shù)據(jù)為 jsonData[0].name;
下面我們用原聲js來實(shí)現(xiàn)我們的form表單序列化的函數(shù);
首先我們列明步驟:
1)先獲取form表單使用ById或者是forms;
2)獲取后通過elements 取到表單中所有元素的數(shù)組;
3)之后進(jìn)行遍歷判斷類型(根據(jù)類型做相應(yīng)的對(duì)象拼接)實(shí)現(xiàn)序列化對(duì)象;
代碼如下:
function formser(form){ var form=document.getElementById(form); var arr={}; for (var i = 0; i < form.elements.length; i++) { var feled=form.elements[i]; switch(feled.type) { case undefined: case 'button': case 'file': case 'reset': case 'submit': break; case 'checkbox': case 'radio': if (!feled.checked) { break; } default: if (arr[feled.name]) { arr[feled.name]=arr[feled.name]+','+feled.value; }else{ arr[feled.name]=feled.value; } } } return arr },
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- jQuery實(shí)現(xiàn)form表單序列化轉(zhuǎn)換為json對(duì)象功能示例
- jQuery序列化后的表單值轉(zhuǎn)換成Json
- js表單處理中單選、多選、選擇框值的獲取及表單的序列化
- 基于JavaScript將表單序列化類型的數(shù)據(jù)轉(zhuǎn)化成對(duì)象的處理(允許對(duì)象中包含對(duì)象)
- js表單中選擇框值的獲取及表單的序列化
- jQuery實(shí)現(xiàn)form表單元素序列化為json對(duì)象的方法
- jquery序列化form表單使用ajax提交后處理返回的json數(shù)據(jù)
- Javascript表單序列化原理及實(shí)現(xiàn)代碼詳解
相關(guān)文章
淺談JavaScript構(gòu)造樹形結(jié)構(gòu)的一種高效算法
這篇文章主要介紹了JavaScript構(gòu)造樹形結(jié)構(gòu)的一種高效算法,對(duì)算法感興趣的同學(xué),可以參考下2021-05-05js實(shí)現(xiàn)鼠標(biāo)滾輪控制圖片縮放效果的方法
這篇文章主要介紹了js實(shí)現(xiàn)鼠標(biāo)滾輪控制圖片縮放效果的方法,涉及onmousewheel事件及javascript操作圖片的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-02-02點(diǎn)擊頁面任何位置隱藏div的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄c(diǎn)擊頁面任何位置隱藏div的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-09-09Javascript拖拽&拖放系列文章3之細(xì)說事件對(duì)象
Javascript中的事件對(duì)象其實(shí)和.NET中繼承自EventArgs類的派生類類似,用來給事件處理程序傳遞狀態(tài)信息,從而進(jìn)行相應(yīng)的操作。這一篇文章將講述Javascript事件對(duì)象中和實(shí)現(xiàn)拖拽功能相關(guān)的幾個(gè)屬性,并在最后將IE事件模型和標(biāo)準(zhǔn)DOM事件模型的差異封裝到一個(gè)類中,從而適應(yīng)所有的瀏覽器。2008-09-09JS實(shí)現(xiàn)日期時(shí)間動(dòng)態(tài)顯示的方法
這篇文章主要介紹了JS實(shí)現(xiàn)日期時(shí)間動(dòng)態(tài)顯示的方法,涉及JavaScript基于時(shí)間函數(shù)定時(shí)操作頁面元素屬性的相關(guān)技巧,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下2015-12-12JS使用tofixed與round處理數(shù)據(jù)四舍五入的區(qū)別
js中一般使用tofixed與round處理數(shù)據(jù)四舍五入,那么tofixed與round有什么區(qū)別呢?下面小編給大家分享JS使用tofixed與round處理數(shù)據(jù)四舍五入的區(qū)別,需要的朋友參考下吧2017-10-10將兩個(gè)div左右并列顯示并實(shí)現(xiàn)點(diǎn)擊標(biāo)題切換內(nèi)容
將兩個(gè)div左右并列顯示并實(shí)現(xiàn)點(diǎn)擊標(biāo)題切換內(nèi)容的效果,接下來為大家詳細(xì)介紹下js中時(shí)如何實(shí)現(xiàn)的,感興趣的朋友不要錯(cuò)過2013-10-10