发布网友 发布时间:2022-04-23 01:32
共2个回答
懂视网 时间:2022-04-23 05:54
下面是我给大家整理的原生js实现form表单序列化,有兴趣的同学可以去看看。先介绍一下jquery中有相应的表单序列化的方法:
1.serialize()方法
格式:var data = $("form").serialize();
功能:将表单内容序列化成一个字符串。
这样在ajax提交表单数据时,就不用一一列举出每一个参数。只需将data参数设置为 $("form").serialize() 即可。
2.serializeArray()方法
格式:var jsonData = $("form").serializeArray();
功能:将页面表单序列化成一个JSON结构的对象。注意不是JSON字符串。
比如,[{"name":"lihui", "age":"20"},{...}] 获取数据为 jsonData[0].name;
下面我们用原声js来实现我们的form表单序列化的函数;
首先我们列明步骤:
1)先获取form表单使用ById或者是forms;
2)获取后通过elements 取到表单中所有元素的数组;
3)之后进行遍历判断类型(根据类型做相应的对象拼接)实现序列化对象;
代码如下:
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 }
上面是我整理给大家的原生js实现form表单序列化,希望今后会对大家有帮助。
相关文章:
JS怎么实现滑动拼图验证码
vuejs中v-if和v-show使用详解
源生Node.js注册邮箱激活说明详解
热心网友 时间:2022-04-23 03:02
亲,加个定时器就可以了,setInterval(function(){//表单序列化},定时时间);追问如果表单值得数值是变化的呢?表单提交时每次都要重新绑定新的数值,如何绑定?追答就是执行定时器里面的代码时是重新获取表单的值,而不是把获取表单值的代码写在定时器外面这样就可以了