zoukankan      html  css  js  c++  java
  • 表单序列化,获取Json对象

    以下方法适用于所有表单元素

    1、.serialize()

    $(selector).serialize()方法通过序列化表单值创建 URL 编码文本字符串

    <form>
      <input type="checkbox" name="username" value="南国"/>南国
      <input type="checkbox" name="username" value="mary"/>mary
      <input type="text" name="age" value="18"/>
    </form>
    
    
    var aa = $('form').serialize();
    console.log(aa); // username=%E5%8D%97%E5%9B%BD&username=mary&age=18
    // 用decodeURIComponent解码
    console.log(decodeURIComponent(aa)); // username=南国&username=mary&age=18

    2、.serializeArray()

    $(selector).serializeArray()方法通过序列化表单值来创建对象(name 和 value)的数组

    var aa = $('form').serializeArray();
    console.log(aa); 
    

    这里写图片描述

    3、.serializeJson()

    把以下这段代码引入你的js文件中
    $(selector).serializeJson()方法,是通过serializeArray()函数得到的数组来进行数据组装的
    表单的name值为键值,若有多个相同的name值以数组的形式进行拼装,如下列的username

    $.fn.serializeJson = function() {
      var arr = this.serializeArray();
      var json = {};
      arr.forEach(function(item) {
        var name = item.name;
        var value = item.value;
    
        if (!json[name]) {
          json[name] = value;
        } else if ($.isArray(json[name])) {
          json[name].push(value);
        } else {
          json[name] = [json[name], value];
        }
      });
      return json;
    }

    这里写图片描述

    $.param()将对象转换为字符串键值对格式

    $.param()可以将对象的键值转为URL地址的字符串键值对,可以更稳定准确的传递表单内容,因为有时程序对应复杂的序列化解析能力有限

    var obj = {
      aa: 1,
      bb: 'margy',
      cc: '南国'
    }
    
    console.log($.param(obj));  // aa=1&bb=margy&cc=%E5%8D%97%E5%9B%BD
  • 相关阅读:
    fiddler---Fiddler模拟接口数据(mock)
    Intellij IDEA gradle项目目录介绍
    Windows netstat 查看端口、进程占用
    SpringMVC和spring常见面试题总结
    mybatis一级缓存二级缓存
    Mybatis常见面试题总结
    Spring容器
    深入理解JVM类加载机制
    理解Spring框架中Bean的5个作用域
    编程语言的分类与关系
  • 原文地址:https://www.cnblogs.com/Zting00/p/7497634.html
Copyright © 2011-2022 走看看