资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

jquery序列化,jQuery序列化

Jquery表单序列化后添加数据

serialize()、serializeArray()方法都是jquery用户序列化表单的,用于ajax提交的data值的序列化

为巴里坤哈萨克等地区用户提供了全套网页设计制作服务,及巴里坤哈萨克网站建设行业解决方案。主营业务为网站设计、做网站、巴里坤哈萨克网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

在chrome的控制台我们很清楚的看到了serializeArray()返回的是json数组,数组的每个对象都是有json字符串构成,我们可以看到,每个json字符串包括两个键值对,每个键值对都是有name,value组成,其实serializeArray()它把表单里的每个需要提交的dom的name的值赋给json字符串的name,dom的value的值赋给json字符串的value.

那么我们只需这要添加额外的内容:

var dataParam = $("#updateChannelForm").serializeArray();

例如我想添加sex="男"

dataParam.push({"name":"sex","value":"男"}) 就可以了

我们看到serialize()方法把表单里的内容序列化成了字符串

"id=58channelType=2subTitle=591teststetetsextAttrValueId=599"

那么我们只需这要添加额外的内容:

var dataParam = $("#updateChannelForm").serialize();

例如我想添加sex="男"

dataParam =dataParam +""+"sex=男"

JQuery的post提交方式为什么要序列化,而Get提交方式就不用?序列化做了什么?

这是因为后台能够直接处理的数据格式,是一种经过序列化的键值对数据,比如前端要向后台提交三个参数,分别是a=1,b=2,c=3,那么后台接收到的数据就应该是a=1b=2c=3(可以看到其实就是每个“键值对”之间用连接)。当我们用get方式提交数据时,参数是直接附加到url后面的,即

xxx.xxx这是域名此略.xxx?a=1b=2c=3

可以看到?后面的正是后台程序能够直接处理的数据格式,所以get方式提交数据的话,就不需要再对参数进行序列化处理了,直接提交即可。

而当我们用post方式提交时,通常我们提交的数据本身就是一个json对象,比如说像这样的:

var data = {a:1, b:2, c:3};

而提交时数据是直接以原始格式存储在body中而不是以键值对的方式附加到url中的,所以后台程序是无法直接识别的,这时候就需要在提交前先把data转换为 a=1b=2c=3 的格式再提交,这就是序列化。

当然,如果数据是通过表单提交的,那么不管是post方式还是get,浏览器会自动进行序列化,无需前端js再做任何处理。

jquery form 序列化成json对象

通过$("#form").serialize()可以获取到序列化的表单值字符串。

通过$("#form").serializeArray()输出以数组形式序列化表单值。

统统不满足想得到Json的愿望。堆栈溢出后,找到了一个这样的方法

然后通过JSON.stringify($("#form").serializeObject()); 就可以得到Json内容

jquery或js前端提交数据的几种方式

1.jquery提交数据的方式:

(1)第一种jquery序列化提交数据方式:

通过id获取的form表单元素.serialize();

(2)第二种模拟form表单提交元素:

$('#form表单id').attr('method','post');

$('#form表单id'').find('input[name="type"]').val(test);

$('#form表单id').find('input[name="dfrom_to1"]').val(dfrom_to);

$('#form表单id').find('input[name="gt_road_new"]').val(gt_road);

$('#form表id').attr('action',AdminLTE.ctx+'/modules/ltegt/findAllCoverAndInterfere.do');

$('#analysisForm').submit();

2.js提交数据的方式:

(1).js提交表单( .submit()方法提交表单 )

function doSearch(){

var action ="%=path%/User_queryAllUser";

document.all.form.action = action;

document.all.form.submit();}

(2).js替代超链接( window.location.href )

input type="button" id="modify" value="修改工号" οnclick="modifyEmp(${ myList.employeeId })"

//js不能起名为modify,为敏感关键字

function modifyEmp( employeeId ){

//employeeId 作为js的参数传递进来

window.location.href = '%=path%/User_openUserUpdate?employeeId='+employeeId;


分享标题:jquery序列化,jQuery序列化
新闻来源:http://cdkjz.cn/article/dsgochg.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220