2012-11-27 3 views
1

포럼에서 동일한 문제는 발견되었지만 어쨌든 해결할 수는 없습니다. 로그인 폼이 있습니다. 같은AJAX가 작동하지 않는 후 jQuery 팝업 대화 상자가 닫습니다.

@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

관련 문제