2014-04-15 1 views
0

JQuery 모달 대화 상자에서 제대로 작동하지 않는 취소 버튼이있어서 정말 도움이됩니다. 이것은 모달의 취소 버튼을 클릭 할 때 예외입니다. JavaScript 런타임 오류 : 초기화하기 전에 대화 상자에서 메서드를 호출 할 수 없습니다.오류 : 초기화하기 전에 대화 상자에서 메서드를 호출 할 수 없습니다. 메소드 'close'를 호출하려고 시도했습니다.

이 내가 모달에 표시하고있어 부분보기입니다 '가까운'메소드를 호출하려고 시도 :

@model Models.Office 
@{ 
    Layout = null; 
} 
@Scripts.Render("~/bundles/query-1.8.2.js") 
@Scripts.Render("~/bundles/jquery-ui.js") 
@Styles.Render("~/Content/bootstrap") 
@Scripts.Render("~/bundles/bootstrap") 
@Styles.Render("~/Content/css") 
@Styles.Render("~/Content/themes/base/css") 
@Scripts.Render("~/bundles/modernizr") 
<script src="~/Scripts/jquery.validate.min.js"></script> 
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script> 
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script> 

<script type="text/javascript"> 
    function CloseModal() { 
     $(this).dialog("close"); 
    } 
</script> 

@*@using (Ajax.BeginForm("EditOffice", "Admin", new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "edit-Dialog" }))*@ 
@using (Html.BeginForm("CreateEditOffice", "Admin", "POST")) 
{ 
    <fieldset> 
     <legend>Office</legend> 
     @if (ViewBag.IsUpdate == true) 
     { 
      @Html.HiddenFor(model => model.OfficeId) 
     } 

     <div class="display-label"> 
      @Html.DisplayNameFor(model => model.OfficeName) 
     </div> 
     <div class="Input-medium"> 
      @Html.EditorFor(model => model.OfficeName) 
      @Html.ValidationMessageFor(model => Model.OfficeName) 
     </div> 

     <div class="display-label"> 
      @Html.DisplayNameFor(model => model.SupportNo) 
     </div> 
     <div class="Input-medium"> 
      @Html.EditorFor(model => model.SupportNo) 
      @Html.ValidationMessageFor(model => model.SupportNo) 
     </div> 

     <div class="display-label"> 
      @Html.DisplayNameFor(model => model.SupportEmail) 
     </div> 
     <div class="Input-medium"> 
      @Html.EditorFor(model => model.SupportEmail) 
      @Html.ValidationMessageFor(model => model.SupportEmail) 
     </div> 
     <div class="display-label"> 
      @Html.DisplayNameFor(model => model.SupportFax) 
     </div> 
     <div class="Input-medium"> 
      @Html.EditorFor(model => model.SupportFax) 
      @Html.ValidationMessageFor(model => model.SupportFax) 
     </div> 

     <div class="display-label"> 
      @Html.DisplayNameFor(model => model.SupportFtp) 
     </div> 
     <div class="Input-medium"> 
      @Html.EditorFor(model => model.SupportFtp) 
      @Html.ValidationMessageFor(model => model.SupportFtp) 
     </div> 
    </fieldset> 
    <br /> 
    <div class="pull-right"> 
     @if (ViewBag.IsUpdate == true) 
     { 
      <button class="btn btn-primary" type="submit" id="btnUpdate" name="Command" value ="Update">Update</button> 
     } 
     else 
     { 
      <button class="btn btn-primary" type="submit" id="btnSave" name="Command" value="Save">Save</button> 
     } 
      <button type="button" id="Cancel" class="btn btn-primary" onclick="CloseModal()">Cancel</button> 
    </div> 
} 

//Then this is the scrip on the parent view: 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $(".editDialog").on("click", function (e) { 
      // e.preventDefault(); use this or return false 
      var url = $(this).attr('href'); 
      $("#dialog-edit").dialog({ 
       title: 'Edit Office', 
       autoOpen: false, 
       resizable: false, 
       height: 450, 
       width: 380, 
       show: { effect: 'drop', direction: "up" }, 
       modal: true, 
       draggable: true, 
       open: function (event, ui) { 
        $(this).load(url); 
       }, 
       close: function (event, ui) { 
        $("#dialog-edit").dialog().dialog('close'); 
       } 
      }); 

      $("#dialog-edit").dialog('open'); 
      return false; 
     }); 
    }); 
</script> 

내가 잘못하고있어 무엇 ???? 또한 jquery 위의 참조를 제거하면 작업이 완벽하게 처리됩니다. 당신의 닫기 버튼 이벤트를 수정과

답변

0

봅니다 아래

Close": function() { 
         $('#AddUserForm').dialog('close'); 
         return false; 
        } 
관련 문제

 관련 문제