基于jQuery.form.js将表单序列化为json对象

基于jQuery.form.js将表单序列化为json对象

jQuery.form.js表单插件,可以让您轻松地在HTML表单中使用AJAX。主要的方法,ajaxForm和ajaxSubmit从表单元素,收集信息,以决定如何管理提交过程。更多方法:formToArray,formSerialize,fieldSerialize,fieldValue,clearForm,clearFields,resetForm等

1.serialize()方法

格式:var data = $("#formID").serialize();

功能:将表单内容序列化成一个字符串。

这样在ajax提交表单数据时,就不用一一列举出每一个参数。只需将data参数设置为 $("form").serialize()即可。

2.serializeArray()方法

格式:var jsonData = $("#formID").serializeArray();

功能:将页面表单序列化成一个JSON结构的对象。注意不是JSON字符串。

比如,<{"name":"html580"},{password:'html580'}> 获取数据为 jsonData<0>.name

 

3.$.param()方法,可以把json格式数据序列化成字符串形式

var obj={a:1,b:2}

var s=$.param(obj);

会形成a=1&b=2的形式

 

上面的几种方法都不能满足我们的要求,于是进行了扩展,扩展代码如下:

 

$.fn.serializeJson = function() {
        var o = {};
        var a = this.serializeArray();
        $.each(a, function() {
            if (o) {
                if (!o.push) {
                    o = < o >;
                }
                o.push(this.value || '');
            } else {
                o = this.value || '';
            }
        });
        return o;
}

格式: var jsonData = $("#formID").serializeJson();

 

功能:将页面表单序列化成一个JSON结构的对象

比如:{name:'html580',password:'html580'} 获取数据为 jsonData.name

你可能感兴趣的:(基于jQuery.form.js将表单序列化为json对象)