Jquery将form表单序列化成JSON对象

废话不多说,直接上代码

  

将这个表单的数据提交给接口,接口所需为JSON对象

因为通过$("#form").serializeArray()输出的是数组形式的,所以我们必须用别的方法

$(function(){
 //序列化表单
        $.fn.serializeObject = function()
        {
            var o = {};
            var a = this.serializeArray();
            $.each(a, function() {
                if (o[this.name] !== undefined) {
                    if (!o[this.name].push) {
                        o[this.name] = [o[this.name]];
                    }
                    o[this.name].push(this.value || '');
                } else {
                    o[this.name] = this.value || '';
                }
            });
            return o;
        };
        // 确定表单验证
        $('#validateBtn').click(function() {
            $('#userEditForm').bootstrapValidator('validate');
            var params = $("#userEditForm").serializeObject(); //将表单序列化为JSON对象
            console.log(params)
            var url ="/admin/appApply/addAppApply.htm"
            $.post(url,params,function (resp) {
                $('#userEditForm').data('bootstrapValidator').resetForm(true);
                console.log(resp)
            }).error(function(){
                alert("出错");
            });
               });
})

具体是怎么转化的呢?

1、

//序列化表单
$.fn.serializeObject = function()
{
    var o = {};
    var a = this.serializeArray();
    $.each(a, function() {
        if (o[this.name] !== undefined) {
            if (!o[this.name].push) {
                o[this.name] = [o[this.name]];
            }
            o[this.name].push(this.value || '');
        } else {
            o[this.name] = this.value || '';
        }
    });
    return o;
};

先写一个serializeObject将表单数据序列化的方法

2、var params = $("#userEditForm").serializeObject(); //将表单序列化为JSON对象,获取到你要的对应表单json数据传给接口,就完事了

你可能感兴趣的:(工作随笔)