将表单序列化为json字符串

网上序列化表单内容成json字符串,有的很复杂有的完全不好用;现在分享的是真正好用的一个例子。

准备内容

1. js中if的条件表达式

  • 所有的对象都被当作 true
  • 当且仅当字符串为空时,该字符串被当作 false
  • null 和 undefined 被当作 false
  • 当且仅当数字为零时,该数字被当作 false

2. js中对map结构的取值

var map={
    key1:'abc',
    key2:'def'
};
var key='key4';
map[key]='34';	// 动态取值

正文

$.fn.serializeObject = function() {
    var o = {}; 
    var a = this.serializeArray(); 
    $.each(a, function() { 
        if (o[this.name]) { //判断是否已经存在了 
            if (!o[this.name].push) { // 改元素不是嵌套在数组中 
                o[this.name] = [ o[this.name] ]; // 需要把它嵌套在数组中去 
            } o[this.name].push(this.value || ''); 
        } else {// 不存在 
            o[this.name] = this.value || '';// 赋值,如果是null那么就是false就要把''作为值赋给表达式左边 
        } 
    }); 
    return o; 
}

代码来源:http://stackoverflow.com/questions/1184624/convert-form-data-to-javascript-object-with-jquery

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值