• jQuery使用serializeArray()方法取得表单数据并附加json数据


    转载自:http://blog.csdn.net/zheng963/article/details/49156395

    一、serialize()方法
    1、格式
    var data = $("form").serialize();
    2、功能
    将表单内容序列化成一个字符串。
    3、返回结果
    username=forrest&passwd=1234&gender=0&interest=swimming&interest=running&interest=readBook
    二、serializeArray()方法
    1、格式
    var jsonData = $("form").serializeArray();

    2、功能
    将页面表单序列化成一个JSON结构的对象。注意不是JSON字符串。
     
    3、返回结果:
    [{"name":"lihui", "age":"20"},{...}] 获取数据为 jsonData[0].name。


    jquery扩展函数:


    $.fn.serializeObject = function(para)    
    {    
    var serializeObj={}; // 目标对象 
    var tempObj={};//临时对象
        var array=this.serializeArray(); // 转换数组格式
        if(para!=null&&para!=undefined){
        $.each(para,function(name,value) {
        array.push({"name":name,"value":value});
        });
        }
        console.log(para);
        console.log(array);
        $(array).each(function(){ // 遍历数组的每个元素 {name : xx , value : xxx} 
            if(serializeObj[this.name]){ // 判断对象中是否已经存在 name,如果存在name 
                  if($.isArray(serializeObj[this.name])){ 
                     serializeObj[this.name].push(this.value); // 追加一个值 hobby : ['音乐','体育'] 
                  }else{ 
                          // 将元素变为 数组 ,hobby : ['音乐','体育'] 
                     serializeObj[this.name]=[serializeObj[this.name],this.value]; 
                  } 
            }else{ 
                serializeObj[this.name]=this.value; // 如果元素name不存在,添加一个属性 name:value 
            } 
        });     
       return serializeObj;    
    };


    附:
    字符串转对象(strJSON代表json字符串)
      var obj = eval(strJSON);
      var obj = strJSON.parseJSON();
      var obj = JSON.parse(strJSON);
    json对象转字符串(obj代表json对象)
      var str = obj.toJSONString();
      var str = JSON.stringify(obj)
    运用时候需要除了eval()以外需要json.js包(切记哦)
  • 相关阅读:
    HTML5基础
    行为类型11-11:状态模式(State Pattern)
    行为类型11-10:中介者模式(MediatorPattern)
    行为类型11-9:责任链模式(Chain of Responsibility Pattern)
    行为类型11-8:模板模式(Template Pattern)
    行为类型11-7:命令模式(Command Pattern)
    行为类型11-6:解释器模式(Interpreter Pattern)
    FTP 连接失败,防火墙端口设置
    Windows下 NodeJs 版本管理 Nvm
    Ubuntu vi 方向键不正常问题
  • 原文地址:https://www.cnblogs.com/Thinkingcao/p/8183444.html
Copyright © 2020-2023  润新知