大家知道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提交...