Ajax两张表单一起上传

前端之家收集整理的这篇文章主要介绍了Ajax两张表单一起上传前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

现在A表单和B表单,

java
<form@H_403_6@ id@H_403_6@="Aform"@H_403_6@>@H_403_6@
    ······
</form@H_403_6@>@H_403_6@
<form@H_403_6@ id@H_403_6@="Bform"@H_403_6@>@H_403_6@
    ······
</form@H_403_6@>@H_403_6@

目的是Ajax上传时合并两张form的数据,再上传;很明显,这应该在JS部分进行操作

java

var@H_403_6@ formA = $("#Aform"@H_403_6@).serializeJson();
var@H_403_6@ formB = $("#Bform"@H_403_6@).serializeJson();

$.ajax({
    ······
    data:$.extend({},formA,formB),······
});


//form数据转为{name : xx,value : xxx ······}格式@H_403_6@
$.fn.serializeJson=function@H_403_6@()@H_403_6@{@H_403_6@ 
    var@H_403_6@ serializeObj={}; // 目标对象 @H_403_6@
    var@H_403_6@ array=this@H_403_6@.serializeArray(); // 转换数组格式 @H_403_6@
    // var str=this.serialize(); @H_403_6@
    $(array).each(function@H_403_6@()@H_403_6@{@H_403_6@ // 遍历数组的每个元素 {name : xx,value : xxx} @H_403_6@
            if@H_403_6@(serializeObj[this@H_403_6@.name]){ // 判断对象中是否已经存在 name,如果存在name @H_403_6@
                  if@H_403_6@($.isArray(serializeObj[this@H_403_6@.name])){ 
                         serializeObj[this@H_403_6@.name].push(this@H_403_6@.value); // 追加一个值 hobby : ['音乐','体育'] @H_403_6@
                  }else@H_403_6@{ 
                          // 将元素变为 数组 ,hobby : ['音乐','体育'] @H_403_6@
                          serializeObj[this@H_403_6@.name]=[serializeObj[this@H_403_6@.name],this@H_403_6@.value]; 
                  } 
            }else@H_403_6@{ 
                    serializeObj[this@H_403_6@.name]=this@H_403_6@.value; // 如果元素name不存在,添加一个属性 name:value @H_403_6@
            } 
    }); 
    return@H_403_6@ serializeObj; 
};

猜你在找的Ajax相关文章