jquery将表单数据序列化json数据

Jquery序列化表单数据

1.使用serialize方法:
他会将表单数据序列化成一个字符串,表单结构如下:


<form>
                <input type="text" id="account" name="account" placeholder="Username">
                <input type="password" id="pwd" name="pwd" placeholder="password">
                <input name="role" type="radio"  checked="checked" value="3">
            <span>学员</span>
                <input name="role" type="radio" value="2">
            <span style="color:#ffffff;">教练</span>
                <input name="role" type="radio" value="1">
            <span style="color:#ffffff;">管理员</span>

</form>

json代码为:
在这里插入图片描述
使用jquery绑定按钮的单击事件序列化表单的值
我这里的两个输入框的name值为accountpwd,单选按钮的name为role,序列化出来的值为:在这里插入图片描述
2.使用serializeArray方法:
js代码如下:
在这里插入图片描述
效果则是:在这里插入图片描述
控制台代码则是:
在这里插入图片描述
,所以,我们使用序列化时可以灵活选择方法。

如果觉得一个一个取太麻烦,可在js代码中加入这个方法:

    $.fn.serializeJson=function(){
        var serializeObj={};
        var array=this.serializeArray();
        // var str=this.serialize();
        $(array).each(function(){ // 遍历数组的每个元素
            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;
    };

使用方法为和前面两种一样,方法名改为serializeJson即可。
在这里插入图片描述
效果如下:
在这里插入图片描述
麻烦点个关注谢谢!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值