$('form').serialize()
会产生类似a=1&b=2
的内容,但我想要得到的是{a:1,b:2}
。
怎么做?
此外,是否可以对div
等任意容器执行此类工作?
答案 0 :(得分:4)
jQuery不支持这个。您必须使用某些现代浏览器支持的JSON.stringify,但为了支持旧版浏览器,您必须将json2 library包含为<script>
然后你可以有类似的东西:
(function ($) {
jQuery.fn.jsonSerialize = function () {
var obj = {};
var form = this[0];
if (form.tagName !== "FORM") {
return "";
}
$(form.elements).each(function () {
obj[this.name] = $(this).val();
});
return JSON.stringify(obj);
}
}(jQuery));
然后使用如下:
var stringified = $('#yourForm').jsonSerialize();