jquery.form提交的时候,怎么追加jquery序列化表单提交完成的数据

&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&& &
&&&&&& 注册
&&&&&&& 您已注册,点击登录,完整注册
&&&&&&&&&&&&&&
可能碰到的问题JQuery Ajax提交表单数据时的问题
表单中如果提交的数据量比较大的情况,在IE浏览器下会提示&未知名称&数据提交不了,
一开始以为是加了data : $("#myformId").serialize(),这个的问题,检查了表单中提交的文本都是否有name属性;
后来在FireFox下不再报错,但IE下仍报&未知名称&的问题,于是怀疑是数据量过大,应该采用POST方式提交,所以在下面加上type: "POST", 这句就可以了。。
所以在做JQUERY ajax提交表单数据的时候一定要注意:
1.表单的文本框等要有name属性,并与后台接收的对应
2.注意提交的方式
function toSaveOutList(){
&&& url: "InOrderAction!saveOutPickInOrder.action",&& //提交的action
data : $("#myformId").serialize(),// 从表单中获取数据&dataType: "json", //返回json格式的数据&&&type: "POST",&&&&&&&&&&&&&&&&&& // 设置请求类型为"POST",默认为"GET"
error: function(request) {&&&&& // 设置表单提交出错
&&&&&&&&&&& jAlert('warning', "提交出错,请稍候再试", '提示');
&&&&&&& },
&&&&&&& success: function(json) {&// 设置提交完成使用方法
&&&&&&&&&&&&&&& if(json[0].result=='success' && json[0].errorMessage==null){
&&&&&&&&&&&&&&&&&&& jAlert('warning', '提交成功', '提示', function(r){
&&&&&&&&&&&&&&&&&&&&&&& if(r)
&&&&&&&&&&&&&&&&&&&&&&&&&&& location.href="InOrderAction!toOutPickInOrder.action";
&&&&&&&&&&&&&&&&&&& });
&&&&&&&&&&&&&&& }else{
&&&&&&&&&&&&&&&&&&& jAlert('warning', json[0].errorMessage, '提示');
&&&&&&&&&&&&&&& }jquery.form提交的时候,怎么追加序列化完成的数据? - 开源中国社区
当前访客身份:游客 [
当前位置:
看到jquery.form提供了data方法可以追加数据..但是追加的数据是{key:value}这种对象..
---------------问题补充---------------
:现在我想把已经序列化好的字符串传进去,请问到这里还需要再做些什么操作才能符合格式要求?
小弟js很烂..请各位高手指教.
共有1个答案
<span class="a_vote_num" id="a_vote_num_
jquery没有提供jquery.form这个方法吧?
我只知道有jquery.ajax或者jquery.submit().
如果你是用ajax,那么你可以直接把序列化好的字符串放到你请求的url后面。
--- 共有 2 条评论 ---
因为没有用过jquery.form这个插件,所以不知道它对data的格式要求是否是这么严格。
但是,我记得在jquery.ajax中的data既支持序列化的字符串,也同时支持json的格式。
(4年前)&nbsp&
嗯,不是jquery自带的,我是说jquery.form这个插件的方法..
他附加的data是{key:'value'}这种键值对,比较郁闷怎么把序列化的字符串变成这种格式
(4年前)&nbsp&
更多开发者职位上
有什么技术问题吗?
类似的话题jquery Ajax serialize()表单进行序列化方式上传文件-jquery-网页制作-壹聚教程网jquery Ajax serialize()表单进行序列化方式上传文件
serialize可以实现数据的post提交或get提交了,如果我们要上传文件就必须使用post提交了,下面我们来看一篇关于Ajax serialize()表单进行序列化方式上传文件吧。
通过Ajax serialize()表单进行序列化方式上传文件,使用FormData进行Ajax请求
通过传统的form表单提交的方式上传文件:
&form id= &uploadForm& action= /cfJAX_RS/rest/file/upload& method= &post& enctype =&multipart/form-data&&&
&&&& &h1 &测试通过Rest接口上传文件 &/h1&&
&&&& &p &指定文件名: &input type =&text& name=&filename& /&&/p&&
&&&& &p &上传文件: &input type =&file& name=&file& /&&/p&&
&&&& &p &关键字1: &input type =&text& name=&keyword& /&&/p&&
&&&& &p &关键字2: &input type =&text& name=&keyword& /&&/p&&
&&&& &p &关键字3: &input type =&text& name=&keyword& /&&/p&&
&&&& &input type =&submit& value=&上传&/&&
serialize()对form表单进行序列化提交
不过传统的form表单提交会导致页面刷新,但是在有些情况下,我们不希望页面被刷新,这种时候我们都是使用Ajax的方式进行请求的:
&&&& url : &http://localhost:8080/STS/rest/user&,&
&&&& type : &POST&,&
&&&& data : $( '#postForm').serialize(),&
&&&& success : function(data) {&
&&&&&&&&& $( '#serverResponse').html(data);&
&&&& error : function(data) {&
&&&&&&&&& $( '#serverResponse').html(data.status + & : & + data.statusText + & : & + data.responseText);&
如上,通过$(&#postForm&).serialize()可以对form表单进行序列化,从而将form表单中的所有参数传递到服务端。
但是上述方式,只能传递一般的参数,上传文件的文件流是无法被序列化并传递的。
不过如今主流浏览器都开始支持一个叫做FormData的对象,有了这个FormData,我们就可以轻松地使用Ajax方式进行了。
FormData是什么呢?我们来看看Mozilla上的介绍
XMLHttpRequest Level 2添加了一个新的接口FormData.利用FormData对象,我们可以通过JavaScript用一些键值对来模拟一系列表单控件,我们还可以使用XMLHttpRequest的send()方法来异步的提交这个&表单&.比起普通的ajax,使用FormData的最大优点就是我们可以异步上传一个二进制文件.
所有主流浏览器的较新版本都已经支持这个对象了,比如Chrome 7+、Firefox 4+、IE 10+、Opera 12+、Safari 5+。
使用FormData,进行Ajax请求并上传文件
&form id= &uploadForm&&&
&&&&& &p &指定文件名: &input type=&text& name=&filename& value= &&/&&/p &&
&&&&& &p &上传文件: &input type=&file& name=&file&/&&/ p&&
&&&&& &input type=&button& value=&上传& onclick=&doUpload()& /&&
function doUpload() {&
&&&& var formData = new FormData($( &#uploadForm& )[0]);&
&&&& $.ajax({&
&&&&&&&&& url: 'http://localhost:8080/cfJAX_RS/rest/file/upload' ,&
&&&&&&&&& type: 'POST',&
&&&&&&&&& data: formData,&
&&&&&&&&& async: false,&
&&&&&&&&& cache: false,&
&&&&&&&&& contentType: false,&
&&&&&&&&& processData: false,&
&&&&&&&&& success: function (returndata) {&
&&&&&&&&&&&&& alert(returndata);&
&&&&&&&&& },&
&&&&&&&&& error: function (returndata) {&
&&&&&&&&&&&&& alert(returndata);&
&&&&&&&&& }&
上一页:没有了 &&&&&下一页:相关内容5819人阅读
J2EE(33)
jquery Ajax(16)
J2SE(19)
首先对某一表单进行Json对象序列化: 
(function($){
$.fn.serializeJson=function(){
var serializeObj={};
var array=this.serializeArray();
var str=this.serialize();
$(array).each(function(){
if(serializeObj[this.name]){
if($.isArray(serializeObj[this.name])){
serializeObj[this.name].push(this.value);
serializeObj[this.name]=[serializeObj[this.name],this.value];
serializeObj[this.name]=this.
return serializeO
})(jQuery);
var proRuestl_1 = $(&#proResult1&).serializeJson();//数据序列化
var proRuestl_2= $(&#proResult2&).serializeJson();//数据序列化
var proRuestl_3= $(&#proResult3&).serializeJson();//数据序列化
然后对数据的合拼
$.extend(param, proRuestl_1,proRuestl_2,proRuestl_3);
最后用ajax提交
type: &POST&,
async: false,
url: 'XXXX',
data: param,
dataType: &json&,
这样不单可以提交多个表单的参数,还可以防止乱码的出现!
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:529655次
积分:5258
积分:5258
排名:第3621名
原创:45篇
转载:45篇
评论:678条}

我要回帖

更多关于 form表单序列化提交 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信