【发布时间】:2012-04-10 07:09:29
【问题描述】:
我有一个小表单,其中包含一个 jQuery UI 对话框,如果选中了特定的复选框,则可以询问其他信息。对话框打开并包含 2 个额外的复选框。
问题是提交表单时,对话框中的 2 个复选框没有与表单的其余部分一起提交。据我所知,当 jQuery 呈现对话框时,它实际上将它呈现在关闭表单标记之外,导致复选框不再是表单的一部分。
我尝试过类似的方法:
$("#dialog-form").parent().appendTo($("#ContactSpeakerForm:first"));
但是还没有想出好的解决方案。
这是我的 js:
$(function() {
var eventReg = $('#dialog-form').dialog({
autoOpen: false,
modal: true,
buttons: {
Ok: function() {
$(this).dialog("close");
}
}
});
$('#Confirmed').click(function() {
if($('#Confirmed').attr('checked')) {
eventReg.dialog("open");
}
});
});
这里是html:
<form id="ContactSpeakerForm" name="ContactSpeakerForm" action="/contacts/add-contact-speaker/id/3420" method="post">
<input type="hidden" name="ID" value="" id="ID">
<input type="hidden" name="Contact_ID" value="3420" id="Contact_ID">
<div class="page_panel_table">
<table>
<tbody>
<tr>
<td align="right" class="form_label">Confirmed:</td>
<td>
<input type="checkbox" name="Confirmed" id="Confirmed" value="1">
</td>
</tr>
<tr>
<td><input type="submit" name="submit" id="submit" value="Save"></td>
</tr>
</tbody>
</table>
</div>
<div id="dialog-form" style="display:none;" title="Speaker Event Registration">
<input type="checkbox" name="RegisterForEvent" id="RegisterForEvent" value="1">
<input type="checkbox" name="RegisterForDinner" id="RegisterForDinner" value="1">
</div>
</form>
有人知道一个好的解决方案吗?
【问题讨论】:
-
关键问题是对话框被附加到正文中以更容易管理定位......因此它会从您的表单中删除
-
@charlietfl:是的,这就是问题所在。