2012-11-27 39 views
1

我在論壇上發現了相同的問題,但無法修復它 我有一個登錄表單。喜歡的東西:jQuery彈出對話框在AJAX不工作後關閉

@using (Ajax.BeginForm("LogIn", "Account", null, new AjaxOptions 
    { 
     HttpMethod = "Post", 
     UpdateTargetId = "result", 
     InsertionMode = InsertionMode.Replace, 
     LoadingElementId = "loginspinner", 
     OnSuccess = "OnTryLogin" 
    }, new { id = "loginform"})) 
    { 
     <div> 
      <div class="editor-field"> 
       @Html.TextBoxFor(m => m.UserName, new { id = "loginusername"}) 
       @Html.ValidationMessageFor(m => m.UserName) 
      </div> 
.............................. 

我顯示彈出式(partialview),如:

$.get(loginaction, function (data) { 
      var div; 
      var divId = '#popupforlogin'; 
      div = $(divId); 
      $(div).html(data); 
      $(div).dialog({ 
       modal: true, 
       resizable: false, 
       autoOpen: false, 
      }); 
      $(div).dialog('open'); 
      // .... 
} 

而且我有:

function OnTryLogin(result) { 
      if (result.success == true) { 
       var fullPath = '@Url.Content("~/Account")' + '/LogOff'; 
       var userName = result.userName; 
       $('#popupforlogin').dialog('close'); 
       //...... 
} 

所以問題是,dialog('close')不工作。

我錯在哪裏?

+0

*不*工作不是一個解釋 - 請添加一些類型的錯誤信息,如果你得到任何。如果沒有,請讓我們知道你到目前爲止如何嘗試調試? – ahren

+0

我的意思是對話框保持打開狀態,並且我在螢火蟲控制檯窗口中沒有錯誤。當我調試時,它通過一行「$('#popupforlogin')。dialog('close');」沒有任何錯誤 – amplifier

回答

1

你實際上應該使用$('#popupforlogin').dialog({ autoOpen: false });來初始化它。然後您可以使用$('#popupforlogin').dialog('open');打開對話框,並使用$('#popupforlogin').dialog('close');關閉它。

here