Jquery 將表單序列化為Json物件

2022-08-01 23:18:19 字數 1200 閱讀 8041

大家知道jquery中有serialize方法,可以將表單序列化為乙個「&」連線的字串,但卻沒有提供序列化為json的方法。不過,我們可以寫乙個外掛程式實現。

我在網上看到有人用替換的方法,先用serialize序列化後,將&替換成「:」、「『」:

/**

* 重置form表單

* @param

formid form的id

*/function resetquery(formid)

function strtoobj(str))";

obj =eval(str);

return

obj;

}

這個方案有個重大bug:如果輸入框中本身有=怎麼辦呢? 所以,我的方法是,先用serializearray序列化為陣列,再封裝為json物件。

表單:

jquery外掛程式**:

(function($);

$(this

.serializearray()).each(function());

return

serializeobj;

};})(jquery);

測試一下:

$("#myform").bind("submit",function(e));

測試結果:

輸入a,b提交,得到序列化結果

上面的外掛程式,不能適用於有多個值的輸入控制項,例如核取方塊、多選的select。下面,我將外掛程式做進一步的修改,讓其支援多選。**如下:

(function($);

var array=this

.serializearray();

var str=this

.serialize();

$(array).each(function()

else

}else

});return

serializeobj;

};})(jquery);

這裡,我將多選的值封裝為乙個數值來進行處理。如果大家使用的時候需要將多選的值封裝為「,"連線的字串或者其他形式,請自行修改相應**。

表單:

測試結果:

form表單序列化為Jquery物件

1 form id dailyfinancial class form inline 2 div class form group 3 label for financialtype 記賬型別 label 4 select class form control id financialtype na...

jQuery表單序列化為json物件外掛程式

我們在開發web的時候,往往會用到表單的序列化,這裡寫了乙個表單序列化的外掛程式,第一次寫可外掛程式 function options var jsonobj if defaultsetting.isrepeat else else else return jsonobj jquery 解讀 1.v...

jQuery 表單資料序列化為json格式

jquery是在web應用中使用的指令碼語言之一,因其具有輕量級,易學易用等特點,已廣泛應用,其中的ajax封裝簡化了我們的應用,對其表單資料序列化用如下方法 1.serialize 方法 格式 var data formid serialize 功能 將表單內容序列化成乙個字串。這樣在ajax提交...