2013-02-10 3 views
1

У меня есть страница с флажком, который должен проверить пользователь, и появится всплывающее окно. Всплывающее окно отображается правильно; однако я не смог закрыть окно. Как вы можете видеть ниже, функция closewindow вызывается всякий раз, когда пользователь нажимает на submit. Отобразится сообщение, но окно никогда не закрывается. См. Пример кода ниже.Telerik Control Всплывающее окно Отказано, чтобы закрыть

//This is the content of the partial page that is being load in the popped up window. 
@using (Html.BeginForm("StudentArchive", "Arvhive", FormMethod.Post, new { onsubmit = "CloseWindow()" })) 
{ 

    @Html.HiddenFor(item => item.StudentID) 
<table> 
    <tr> 
     <th> 
      Student Archive Reason 
     </th> 
    </tr> 
    <tr> 
     <td> 
      @Html.TextAreaFor(item => item.ArchiveReason) 
     </td> 
    </tr> 
</table> 

<input type="submit" value="Submit" name="btnSubmit" id="ArchiveReasonSubmit" onclick="CloseWindow();" /> 
} 


     <script type="text/javascript"> 
      function CloseWindow() { 
       alert('I am closing window in reason for archive'); 
       $("#Window").data("tWindow").close(); 
//    $('#Window').prop("checked", "checked"); 
//    window.location.href = window.location.href; 
      } 
    </script> 



//this script is in a studentDetails page which is where the checkbox that would open the window below located. 



<script type="text/javascript"> 
    function chkArchive() { 
     var s = document.getElementById('archiveCheckBox').checked; 
     if (s == true) { 
      OpenWindow(this); 
     } 

     if (s == false) { 
      alert('checkbox is unchecked'); 
     } 
    } 
</script> 


<script type="text/javascript"> 
     function OpenWindow(e) { 
      var checkbox = document.getElementById('archiveCheckBox').value; 
      if (checkbox == "false") { 
       alert('It is false.'); 
      } else if (checkbox == "true") { 
       $('#Window').data('tWindow').center().open(); 
      } 
     } 
</script> 

    <script type="text/javascript"> 
     function ClosingWindow() { 
      $('#Window').prop("checked", "checked"); 
      window.location.href = window.location.href; 
     } 
    </script> 


    @{Html.Telerik().Window() 
    .Name("Window") 
    .Visible(true) 
    .Title("Reason for Archives") 
    .Modal(true) 
    .Height(600) 
    .Draggable(true) 
    .Visible(false) //I could have added a variable set the default value to false to hide the window. However, I am not sure how to change it back to 
        //yes after the user checks the checkbox for the first time. The only event that fire when a user check the checkbox is the javascript event to check the state 
        // of the checkbox and open the window. 
    .Width(800) 
    .ClientEvents(events => events.OnClose("ClosingWindow")) 
    .LoadContentFrom(Url.Action("StudentArchive", "Student", new { StudentID = @ViewData["StudentID"] }, Request.Url.Scheme)) 
    .HtmlAttributes(new { onsubmit = "CloseWindow()" }) 
    .Render(); 
    } 
+0

Во-первых, используется функция CloseWindow() в двух местах, попробуйте удалить one.second проверить, что вы получаете ошибку JavaScript. – sathishkumar

+0

В библиотеке jquery ссылались дважды. Я удалил его с частичной страницы просмотра, и запрос работает нормально. http://www.telerik.com/community/forums/aspnet-mvc/window/close-modal-window-from-within-the-window.aspx – Gagouche

ответ

Смежные вопросы