Chrome和Opera中不会添加表单标记

时间:2012-12-21 10:38:18

标签: jquery html jquery-ui-dialog html-form

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

1 个答案:

答案 0 :(得分:1)

我相信默认情况下,jquery对话框会添加到body标记的末尾,因此,对话框中的所有控件都不是表单的一部分,并且不会发布需要添加这样的东西

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

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

此外,我认为您不能在一个页面中拥有多于1个表单标记。

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