【发布时间】:2015-01-28 14:15:38
【问题描述】:
我正在尝试构建一个包含多个“子形式”的手风琴。转到下一个面板后,我想在 oldPanel 中提交表单字段。最多可以有九个手风琴部分,因此最多可以有九个单独的 html 表单,每个表单中都有一个公制的输入字段。
当我第一次单击标题 1 到标题 2 时,它可以正常工作(无论如何都是脚本 - 仍然无法让表单的内容序列化)。当我从标题 2 单击回到 1 时,表单变成了一个空对象。在各个面板关闭后,如何在各个面板中提交表单?
JS
$(function () {
$("#accordionSubmit").accordion({
collapsible: true,
beforeActivate: function (event, ui) {
var tbl = $('#accordionSubmit').data('table');
var form = $(ui.oldPanel).find('form'); //.serialize();
$.ajax({
type: "POST",
url: "ajax.php",
data: form,
success: function (data) {
$(ui.newPanel).html(data);
console.log(form);
},
error: function (xhr, status, error) {
//var err = eval("(" + xhr.responseText + ")");
alert("Nope");
}
});
}
});
});
HTML
<div id="accordionSubmit" class="accordionSubmit" data-table="jto-submit">
<h3>Header Name 1</h3>
<div>
<form name="form" id="a">
<input type="hidden" id="stuff" value="YAY">
<input type="hidden">
</form>Contents</div>
<h3>Header Name 2</h3>
<div>
<form name="form" id="b">
<input type="hidden" id="stuff1" value="YAY1">
<input type="hidden">
</form>
</div>
【问题讨论】:
-
看来您走在了正确的轨道上。激活新面板时,您会收到一个包含旧面板和新面板标识的事件。鉴于您现在知道要关闭的面板,您可以提交其中包含的表单。我想我错过了你的核心谜题?
-
我的问题是,在第一次更改面板后,无论我在面板之间进行了多少后续更改,我都会停止获取旧面板的身份。我不确定为什么我失去了关闭面板的价值,我不确定如何为每个单独的表单提交表单数据,不知道(从 JS 的角度来看)哪些表单会出现。