您好我有一个HTML表单,我想使用jQuery序列化,但我想得到这样的格式:
{ "Message":"message textg","Tags":"tags text","Facebook":"true"...}
我在表单中的输入是:
<textarea name="Message" rows="5" value="" required />
<input type="text" name="Tags" value="">
<input type="checkbox" name="Facebook" checked="checked">
<input type="checkbox" name="Twitter" checked="checked">
<textarea name="FacebookText" rows="5" value="" />
<textarea rows="5" name="TwitterText" value="" />
如果我这样做:
JSON.stringify($('#form-message').serialize());
然后我得到一个字符串:
"Message=Message+text&Tags=Tags&Facebook=on&FacebookText=Facebook+text&Twitter=on&TwitterText=Twitter+text"
如果我这样做:
JSON.stringify($('#form-message').serializeArray());
然后我得到一个字符串:
[{"name":"Message","value":"Message Text"},{"name":"Tags","value":"Tags"},{"name":"Facebook","value":"on"},{"name":"FacebookText","value":"Facebook Text"},{"name":"Twitter","value":"on"},{"name":"TwitterText","value":"Twitter Text"}]
答案 0 :(得分:0)
在第一个示例中,您JSON.stringify一个字符串。哪个会返回错误的结果。试试这个:
var paramObj = {};
$.each($('#form-message').serializeArray(), function(_, kv) {
paramObj[kv.name] = kv.value;
});
var data = JSON.stringify(paramObj);