将JSON从表单序列化为对象

时间:2013-04-11 22:00:49

标签: javascript jquery html forms

我正在尝试在提交时转换表单数据以更新json对象。

这是我到目前为止所做的:

var app = {
slidePreviews: "",
selectedTheme: "",
slideDuration: 7000,
    slides: []
};
$(document).ready(function() {

$('#slideForm').on('submit', function(event){
    var slide = $(this).toJSON;
    app.slides.push(slide);
    return false;
});
}); 
<div id="themeOption"></div> 
<div id="ppt"></div>

<pre><code id="presentation"></code></pre>

<form id="slideForm">
<dl>
    <dt><label for="presTitle">Title of the Presentation:</label></dt>
    <dd><input id="presTitle" type="text" name="presentation.title"/></dd>
</dl>
<dl>
    <dt><label for="slideTitle">Slide Title:</label></dt>
    <dd><input id="slideTitle" type="text" name="presentation.slide.title"/></dd>
</dl>
<dl>
    <dt><label for="slideHeader">Slide Header:</label></dt>
    <dd><input id="slideHeader" type="text" name="presentation.slide.header"/></dd>
</dl>
<dl>
    <dt>Content</dt>
    <dd>
        <textarea rows="5" cols="20" name="presentation.slide.content">Slide content here</textarea>
    </dd>
</dl>
<dl>
    <dt></dt>
    <dd><input type="submit" value="Send" /></dd>
</dl>

我希望使用表单数据更新对象应用程序。当我记录“幻灯片”时,我得到“未定义”。 有什么建议。

3 个答案:

答案 0 :(得分:0)

我认为您需要在致电toJSON()来电时添加父母:

var slide = $(this).toJSON();

答案 1 :(得分:0)

使用serialize函数将表单序列化为JSON而不是toJSON函数,如下所示:

$(this).serialize();

答案 2 :(得分:0)

您可以像这样使用jQuery的serialize()

var obj = $("#slideForm").serialize();