我的表单上有一个按钮。当我单击该按钮时,我首先ajaxpost到服务器上的网页,获取指定div的内部html,最后将该html附加到另一个将呈现jqueryui对话框的div。这是代码:
$('#window').html(content).
dialog({
title: title,
show: 'drop',
hide: 'drop',
width: 400,
buttons: buttons,
position: { my: 'center', at: 'center', of: window }
}
);
这是发布页面上div的内部html:
<div id="cardOrder" class="cardOrder-div">
<form runat="server" id="frmAjax" >
<table class="cardOrder-tbl">
......
</form>
</div>
我的Chrome和Opera存在问题。当我第一次单击该按钮并显示带有上述html内容的jqueryui对话框时,缺少“form”标记。但是下次我提交对话框时会添加表单标记。如果没有表格标签,我就无法提交。 Firefox和IE都没有这个问题。表单标记直接从第一个对话框中添加。
编辑:当我调试代码以查看从ajax响应返回的html内容是否包含表单标记时,我可以在那里看到它。但是当内容被添加到div时它会以某种方式消失。
答案 0 :(得分:1)
我相信默认情况下,jquery对话框会添加到body
标记的末尾,因此,对话框中的所有控件都不是表单的一部分,并且不会发布需要添加这样的东西
$('#DIALOGID').dialog({
open:function(event, ui){
$(this).parent().appendTo('form');
}
});
$('#DIALOGID').dialog('open');
这会将对话框HTML附加到表单标记的末尾,然后可以在后面的代码中访问对话框中的控件,
此外,我认为您不能在一个页面中拥有多于1个表单标记。
除非这个答案完全没有帮助