2010-02-24 61 views
0

工作,我有以下的測試ASPX頁面:jQuery用戶界面的對話框不會對ASP.NET

<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的 retreive值。

它工作的很好,但在頁面執行回發之前,「對話框」div移動到「新建」按鈕下方。爲什麼?

回答

2

我認爲這是造成的,因爲你在呼喚:。

dlg.parent().appendTo(jQuery('form:first')); 

收盤迴調這將移動對話框你爲什麼不創建迪後,立即調用此一個日誌?

+0

因爲如果我在創建對話框後立即調用它,我總是看到對話框。 – VansFannel 2010-02-24 11:37:39

+0

如果您已將autoOpen設置爲false(如您所見),則不應該看到對話框。你應該調用$(「#dialog」)。dialog()然後dlg.parent()。appendTo。如果對話框始終打開,請檢查是否包含所有js和css文件。 – kgiannakakis 2010-02-24 12:02:15

+0

我發現了這個問題。這是關於jQuery的版本。正如你在問題中看到的,我一直在使用jquery-1.2.6.min.js和jquery-ui-1.6.custom.min.js。我已經更改爲jquery-1.3.2.min.js和jquery-ui-1.7.2.custom.min.js,並且我還在對話框中添加了一個打開的函數:open:function(type,data){$(this ).parent()。appendTo(「form」);}它工作! – VansFannel 2010-02-24 12:34:47

0

嘗試chaning $(函數(){ 到 $(文件)。就緒(函數(){

還要檢查它失敗了某種JavaScript調試器的歌劇得到了內置和FireFox有螢火。 。

+0

它不工作。我沒有發現任何錯誤。 – VansFannel 2010-02-24 11:43:01

相關問題