JS多个表单数据提交下的serialize()应用实例分析
本文实例讲述了JS多个表单数据提交下的serialize()应用。分享给大家供大家参考,具体如下:
在实际开发场景中,难免遇到需要多个表单的数据传递问题。
之所以要进行多表单的数据传递是因为可以进行数据分组,便于数据的维护。
这个时候,出于不依赖jquery的考虑,有一个原生js函数来解决这个问题无疑是最好的。而源自于《JavaScript高级程序设计》一书的serialize()函数就是解决这个问题的最好办法,该函数如下:
functionserialize(form){ varparts=[], field=null, i, len, j, optLen, option, optValue; for(i=0,len=form.elements.length;i对于读过《JavaScript高级程序设计》的小伙伴来说,这个函数肯定不陌生;
但是如果我们传递的是一个对象,那么这个函数显然就不符合要求,而在这个开发需求下,我们改下这个函数,改造后函数如下
functionserialize(form){ varparts={}, field=null, i, len, j, optLen, option, optValue; for(i=0,len=form.elements.length;i于是,表单数据改为对象显示。如果有多个表单将表单保存到一个数组之中,利用JSON.stringify()转为json格式,传给后端;
注意:
利用Object.defineProperty创建对象,要加上enumerable:true,否则json格式中不会出现对应的对象数据。这个纯粹是JSON.stringify()的要求。
感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.jb51.net/code/HtmlJsRun测试上述代码运行效果。
更多关于JavaScript相关内容可查看本站专题:《JavaScript操作DOM技巧总结》、《JavaScript页面元素操作技巧总结》、《JavaScript事件相关操作与技巧大全》、《JavaScript查找算法技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript错误与调试技巧总结》
希望本文所述对大家JavaScript程序设计有所帮助。