表单序列化,获取Json对象

来源:互联网 发布:linux cp命令略过目录 编辑:程序博客网 时间:2024/05/18 23:55

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

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
1 0
原创粉丝点击