卡奇莫多 2012-09-07
搜索相关问题发现,其中主要问题是出在:JQuery会把Dialog的元素append到Body里面,而不是form里面。研究了页面源码后发现,jQuery UI Dialog控件初始化时动态生成的HTML元素被添加到页面的尾部、form元素的后面,而原始的Dialog模板部分(其内包含表单元素)也被移到了 动态生成的HTML元素内。也就是说,原先在form内的表单在Dialog初始化后就被移到form外了,这就导致了Dialog模板内表单全部失效。
解决方法是增加一行代码即可:dlg.parent().appendTo(jQuery("form:first"));
也就是修改开始部分创建对话框的脚本即可:
<script language="javascript"> $(function(){ var dlg = jQuery("#dd").dialog({ draggable: true, resizable: true, closed:true, show: 'Transfer', hide: 'Transfer', autoOpen: false, width:600, minHeight: 10, minwidth: 10 }); dlg.parent().appendTo(jQuery("form:first")); }); function open1(){ $('#dd').dialog('open'); } function close1(){ $('#dd').dialog('close'); } </script>
另外你也可以通过这种方法来处理该问题:
$('#dialog_link').click(function () { $('#dialog').dialog('open'); $('#dialog').parent().appendTo($("form:first")) return false; });
参考:
http://stackoverflow.com/questions/757232/jquery-ui-dialog-with-asp-net-button-postback
jquery easyui dialog可以两种方式使用1)定义div,使用iframe<div id="openRoleDiv" class="easyui-window" closed="true