javacript序列化表单数据
在前端开发时,用到表单交互的比较多,在我们实现一些异步操作数据时,表单数据的序列化就显得尤为重要了。下面我们一起来看看如何进行序列化。
如,我们在进行提交表单时,地址栏里会显示这样的东东:name=zhangsan&sex=male&phone=55555,这种就叫做序列化。
js实现如下:
// 通过表单的name或者id进行序列化
var formData = function(formStr){
var elements = document.forms[formStr].elements || document.getElementById(formStr).elements,
len = elements.length,
i = 0,
name = value = option = '',
dataArr = [];
for(; i < len; i++){
name = encodeURIComponent(elements[i].name);
value = encodeURIComponent(elements[i].value);
switch(elements[i].type){
case 'radio':
case 'checkbox':
if(elements[i].checked){
dataArr.push(name + '=' + value);
}
break;
case 'select-one':
case 'select-multiple':
option = elements[i].options;
var tempArr = [];
for(var j = 0, mlen = option.length; j < mlen; j++){
if(option[j].selected){
option[j].attributes.value && option[j].attributes.value.specified ?
tempArr.push(option[j].value) : tempArr.push(option[j].text);
}
}
dataArr.push(name + '=' + encodeURIComponent(tempArr.join()));
break;
case 'button':
case 'reset' :
case 'submit':
case 'file' :
break;
default:
dataArr.push(name + '=' + value);
break;
}
}
return dataArr.join('&');
}
//假设用作异步请求的js函数为ajax
var url = formData('myform');
ajax('a.php', url);
javacript序列化表单数据的更多相关文章
- jQuery序列化表单数据 serialize()、serializeArray()及使用
1.serialize() 方法: serialize() 方法通过序列化表单值,创建 URL 编码文本字符串. 您可以选择一个或多个表单元素(比如 input 及/或 文本框),或者 form 元素 ...
- jQuery 序列化表单数据 serialize() serializeArray()
1.serialize()方法 格式:var data = $("form").serialize(); 功能:将表单内容序列化成一个字符串. 这样在ajax提交表单数据时,就不用 ...
- 使用jQuery实现跨域提交表单数据
我们在WEB开发中有时会遇到这种情况,比如要从A网站收集用户信息,提交给B网站处理,这个时候就会涉及到跨域提交数据的问题.本文将给您介绍如何使用jQuery来实现异步跨域提交表单数据. 在jQue ...
- jquery序列化表单以及回调函数的使用
在开发项目中.将前台的值传给后台,有时的JSP表单中的值有一两个,也有所有的值,假设这时一个个传,必然不是非常好的办法,所以使用jQuery提供的表单序列化方法,能够非常好的解决问题.同一时候能够封装 ...
- jQuery序列化表单 serialize() serializeArray()
1.serialize()方法 描述:序列化表单内容为字符串,用于Ajax请求. 格式:var data = $(form).serialize(); 2.serializeArray()方法 描述: ...
- 序列化表单为json对象,datagrid带额外参提交一次查询 后台用Spring data JPA 实现带条件的分页查询 多表关联查询
查询窗口中可以设置很多查询条件 表单中输入的内容转为datagrid的load方法所需的查询条件向原请求地址再次提出新的查询,将结果显示在datagrid中 转换方法看代码注释 <td cols ...
- JQuery序列化表单serialize() 以及 serializeArray()
都是利用form表单传递数据的 1.serialize()方法 描述:序列化表单内容为字符串,用于Ajax请求. 数据类似于这种: FirstName=Bill&LastName=Gates ...
- Jquery serialize()提交多个表单数据
ajax提交多个表单数据: 先把不同的表单分别用serialize()函数,然后把序列化后的数据用+拼接提交给后台,具体例子如下 var data1 = $('#form1).serialize(); ...
- jQuery序列化表单 serialize() serializeArray()(非常重要)
https://m.2cto.com/kf/201412/361303.html 2014-12-15 1.serialize()方法 描述:序列化表单内容为字符串,用于Ajax请求. 格式:var ...
随机推荐
- javascript截取字符串(支持中英文混合)
javascript截取字符串(支持中英文混合) <script type="text/javascript"> var sub=function(str,n){ va ...
- 2015年1月最新中国行政区划县及以上代码mysql数据库
中华人民共和国国家统计局>> 行政区划代码>>mysql数据格式 截图如下 行政区划mysql数据库文件下载:nation.zip 转载:http://www.sdhack.c ...
- C语言-创建链表及排序
#include <stdio.h> #define NEWNODE (Node *)malloc(sizeof(Node)) typedef struct mynode{ int num ...
- c#对字符串的各种操作
1.字符串定义 2.在字符串后面追加字符串 3.获取字符串长度 4.截取字符串的一部分 5.字符串转为比特码 6.查指定位置是否为空字符 7.查字符串是否是标点符号 8.截头去尾(Trim) 9.替换 ...
- 【BZOJ 1791】 [Ioi2008]Island 岛屿
Description 你将要游览一个有N个岛屿的公园.从每一个岛i出发,只建造一座桥.桥的长度以Li表示.公园内总共有N座桥.尽管每座桥由一个岛连到另一个岛,但每座桥均可以双向行走.同时,每一对这样 ...
- 预告:准备开个坑,集中学习一下esp32模块
对这个模块有兴趣的可以关注我以后的更新,寒假会抽空写几篇心得.
- Delphi与Qt在Windows下使用共享内存进程间通信
Delphi部分 type TGuardInfo=record Lock: Integer; end; PGuardInfo = ^TGuardInfo; TGuardShareMem=c ...
- 实验五 Java网络编程及安全
北京电子科技学院 实 验 报 告 课程:移动平台应用开发实践 班级:201592 姓名:曾俊宏 学号:20159210 成绩:___________ 指导老师: ...
- willMoveToParentViewController 与 didMoveToParentViewController
在iOS 5.0以前,我们在一个UIViewController中这样组织相关的UIView 在以前,一个UIViewController的View可能有很多小的子view.这些子view很多时候被盖 ...
- poj 2762 Going from u to v or from v to u?(强连通分量+缩点重构图+拓扑排序)
http://poj.org/problem?id=2762 Going from u to v or from v to u? Time Limit: 2000MS Memory Limit: ...