核心提示:前台传到后台序列化表单$(#goodsBuyForm).serialize();//字符串$(#goodsBuyForm).serializeObject();//json对象将表单序列化为name1...
       前台传到后台
序列化表单
$("#goodsBuyForm").serialize();//字符串
$("#goodsBuyForm").serializeObject();//json对象
将表单序列化为
name1=value1&name2=value2 的形式
用在ajax请求中
params = $("#goodsBuyForm").serialize();
$.ajax({
data:param,
//data:{"params":params,"goodsSku":goodSkuId}
// 这样想多传几个参数亲测不行,传到后台的参数也无法直接映射到对象中去
})
serializeObject()基于JQuery的serializeArray()
/**
 * 将表单元素序列化为JSON对象 基于jQuery serializeArray()
 */
$.fn.serializeObject = function() {
    var o = {};
    var a = this.serializeArray();
    $.each(a, function() {
        if (o[this.name] !== undefined) {//刚出现的表单name的值。为undefined直接保存name和value
            if (!o[this.name].push) {//有相同name属性的表单,用数组保存
                o[this.name] = [ o[this.name] ];
            }
            o[this.name].push(this.value || '');
        } else {
            o[this.name] = this.value || '';
        }
    });
    return o;
};
表单序列化为数组:数组的内容为{}json对象,json对象有两个键name和value
serializeArray不会序列化不需要提交的表单控件,跟常规的表单提交行为是一致的。不在



 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                