1

我的表单上有一个按钮。当我单击该按钮时,我首先将 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 时,它会以某种方式消失。

4

1 回答 1

1

我相信默认情况下 jquery 对话框会添加到body标签的末尾,因此,对话框中的任何控件都不是表单的一部分,并且不会发布,您可能需要添加类似这样的内容

$('#DIALOGID').dialog({
        open:function(event, ui){
            $(this).parent().appendTo('form');
        }
    });
    $('#DIALOGID').dialog('open');

这会将对话框 HTML 附加到表单标记的末尾,然后可以在后面的代码中访问对话框中的控件,

另外,我不相信您可以在一个页面中拥有超过 1 个 Form 标签。

除非这个答案完全没有帮助

于 2012-12-21T11:31:42.207 回答