我有一张表格。在此表单中,我使用模式对话框,通过单击按钮显示。该对话框包含一个div,包括一些相同形式的输入字段。它的内容永远不会传输到服务器(方法POST),所以我开始调试一点......
- >为什么对话框“删除”我的表单中的字段???
感谢您的任何输入! URS
HTML
<button type="button" id="opener">other, please click here</button>
<div id="dialog-modal" title="type in the new elements:" style="display: none">
<p>country:<input type="text" class="small" id="othercountry" name="othercountry" value="" </p>
<p>ccode:<input type="text" class="small" id="othercountryCode" name="othercountryCode" value=""></p></div>
的Javascript
<script>
$( "#opener" ).click(function() {
$( "#dialog-modal" ).dialog({
height: 140,
modal: true
});
$( "#dialog-modal" ).bind('dialogclose', function(event)
{ do some other things, not relevant for the form }
);
});
</script>
jQuery 1.8.2
答案 0 :(得分:1)
默认情况下,jQuery会将对话框附加到正文,因此您可能需要将其移回窗体内。这可以这样做:
$('#dialog-modal').parent().appendTo($('form:first'))
有关错误提示,请参阅here
答案 1 :(得分:0)
永远不会看到你的表格标签,纯粹猜测必须在模态div中找到表格标签。
<div id="dialog-modal" title="type in the new elements:" style="display: none">
<form>
<p>country:<input type="text" class="small" id="othercountry" name="othercountry" value="" </p>
<p>ccode:<input type="text" class="small" id="othercountryCode" name="othercountryCode" value=""></p>
</form>
</div>
答案 2 :(得分:0)
我有同样的问题,我发现实际上没有任何工作。如前所述,jquery对话框从标记内移动并附加到body标记。这就是为什么它没有打开对话框的原因。一旦打开,对话框就会移动到body标签和form标签之外。我通过在对话框中放置一个表单标签来解决这个问题,因此无论它在哪里都会有一个表单提交给服务器。通常,您有一个div标签,其中包含隐藏的对话框标记,并在必要时显示。只需在此div中放置一个表单标记,但在所有输入标记之外,以便在单击按钮时提交它们。你可以拥有多个表单标签,但是你不能嵌套它们,所以你应该将所有的jquery对话框直接放在body标签下但不在任何其他表单标签之外,这样如果对话框还没有显示它们就不会发生冲突。