我有以下测试ASPX页面:
<head runat="server">
<title></title>
<script src="js/jquery-1.2.6.min.js" type="text/javascript"></script>
<script src="js/jquery-ui-1.6.custom.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
var dlg = $("#dialog").dialog({
bgiframe: true,
autoOpen: false,
height: 300,
modal: true,
buttons: {
'Ok': function() {
__doPostBack('TreeNew', '');
$(this).dialog('close');
},
Cancel: function() {
$(this).dialog('close');
}
},
close: function() {
dlg.parent().appendTo(jQuery('form:first'));
}
});
});
function ShowDialog() {
$('#dialog').dialog('open');
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="TreeNew" runat="server" Text="New"
OnClientClick="ShowDialog();return false;" onclick="TreeNew_Click"/>
<asp:Label ID="Message" runat="server"></asp:Label>
<div id="dialog" title="Select content type">
<p id="validateTips">All form fields are required.</p>
<asp:RadioButtonList ID="ContentTypeList" runat="server">
<asp:ListItem Value="1">Texte</asp:ListItem>
<asp:ListItem Value="2">Image</asp:ListItem>
<asp:ListItem Value="3">Audio</asp:ListItem>
<asp:ListItem Value="4">Video</asp:ListItem>
</asp:RadioButtonList>
</div>
</div>
</form>
</body>
</html>
我在关闭功能上使用dlg.parent().appendTo(jQuery('form:first'));
来检索 RadioButtonList 中的值。
它运行良好但在页面执行PostBack之前,div“Dialog”移动到New按钮下方。为什么呢?
答案 0 :(得分:2)
我认为这是因为你打电话引起的:
dlg.parent().appendTo(jQuery('form:first'));
收盘时回调。这将移动对话框。为什么不在创建对话框后立即调用它?
答案 1 :(得分:0)
尝试更改$(function(){ 至 $(document).ready(function(){
还检查它失败的地方,内置了一些javascript调试器歌剧,FireFox得到了FireBug ..