2017-03-07 51 views
0

您好我有一個HTML表單,我想使用jQuery序列化,但我想這樣的格式:jQuery的如何獲得JSON {「InputName」:「值」 ...}

{ "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

在第一個例子,你JSON.stringify一個字符串。哪個會返回錯誤的結果。試試這個:

var paramObj = {}; 
$.each($('#form-message').serializeArray(), function(_, kv) { 
paramObj[kv.name] = kv.value; 
}); 
var data = JSON.stringify(paramObj);