zoukankan      html  css  js  c++  java
  • 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包(切记哦)
  • 相关阅读:
    readLine读取socket流的时候产生了阻塞
    Netty开发UDP协议
    Netty关闭客户端
    GIT 回退出错 Unlink of file 'xx' failed. Should I try again? (y/n) 解决办法
    linux 安全狗安装问题
    linux连接mysql命令
    CentOS7 64位下MySQL5.7安装与配置(YUM)
    nginx已经启动 无法访问页面
    Linux系统下我的/etc/sysconfig/路径下无iptables文件
    CentOS 7 下安装 Nginx
  • 原文地址:https://www.cnblogs.com/Thinkingcao/p/8183444.html
Copyright © 2011-2022 走看看