jQuery UI ' s Dialog funktioniert nicht auf ASP.NET
Habe ich den folgenden test ASPX-Seite:
<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>
Benutze ich dlg.parent().appendTo(jQuery('form:first'));
auf schließen-Funktion zum abrufen der Werte aus RadioButtonList.
Es gut funktioniert, aber bevor die Seite tun, das PostBack, das div "Dialog" bewegt sich unterhalb der Schaltfläche "Neu". Warum?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, dass dies wird verursacht, weil Sie den Aufruf:
in der Nähe der Rückruf. Damit verschieben Sie den dialog. Warum rufst du nicht dies unmittelbar nach dem erstellen der dialog?
versuchen Veränderung
$(function() {
zu
$(document).bereit(Funktion() {
überprüfen Sie auch, wo es fehl, mit einer Art von javascript-debugger von opera bekam vordefiniert und FireFox FireBug habe..