2015-01-19 2 views
-1

내가 코드 아약스 함수가 ​​호출됩니다JQuery와 연속 함수 호출

$("#btnFCSubmit").click(function() { 
function1(); 
function2(); 

$.ajax({ 
         url: "/SaveFormsConfigData?DT=" + Date.now(), 
         cache: false, 
         type: "POST", 
         data: { selectedData: JSON.stringify(selectedData), loginURLSuffix: $('#ddProgramList').val() }, 
         success: function (msg) { 
          $('#divResult').html('Forms saved successfully');        

$('#gridFormsConfig').data('kendoGrid').dataSource.read(); 
         LoadValidationElement(msg); 
         $("#tblNewForm").hide(); 
         $("#divEditForms").show(); 
         isTicketRegistered = false; 
        }, 
        error: function (request, status, error) { 
         $('#divResult').html("an error occurred: " + error); 

        } 
       }); 
} 

function function1() { 
    $("#divTicketDetail").dialog({ 
     resizable: false, 
     draggable: true, 
     modal: true, 
     title: "Please associate a Ticket", 
     height: 200, 
     width: 320, 
     buttons: { 
      "Associate": function() { 
       $('#txtDisplayTicket').val($('#txtTicketId').val()); 
            $(this).dialog('close'); 
      } 
     }, 
     create: function (event, ui) { 
      $("body").css({ overflow: 'hidden' }) 
     } 
    }); 
    return false; 
} 

function2() 
{ 
//somevalidation for value of txtDisplayTicket 
} 

도 기능 1 전() 및 기능 2 아래 실행 문제에 직면하고있다() 자신의 실행을 완료합니다. function1의 팝업에서 값을 가져 와서 아약스 요청 값으로 게시하고 싶습니다. function2()에는 function1() 실행에 종속 된 항목이 거의 없습니다. 여기서 function1()은 팝업을 표시하고 입력을 가져 와서 function2()로 전달합니다.

나는 $ .when()를 시도했다. 그런 다음 작동하지 않았다. 나는 실수를 저질렀을지도 모른다.

+1

코드를 게시하지 않는 한 당신을 도울 수 없습니다. 당신은 그 사실을 알기에 충분히 길었습니다 ... – Prisoner

+0

닫는 중'''' – Billy

+0

'function1'이 결과를 반환하면, 그 것을 변수에 할당 한 다음 그것을 function2에 대한 매개 변수로 전달해야합니다 '. – Barmar

답변

0

또한 폐쇄 )을 놓치고는 = 다음 기능 1

에서 기능 2를 호출 기능이 기능 하나에 의존 당신이 말하는, 어쩌면에서 preventDefault() aswell를 추가, "제출"는 입력 유형이있다

$("#btnFCSubmit").click(function() { 
 
function1(); 
 

 
}); 
 

 
function function1(){alert('function 1');function2();} 
 
function function2(){alert('function 2');}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button type="button" id="btnFCSubmit">Submit</button>

+0

function1();을 호출 한 후 ajax 호출이 있으면 어떻게됩니까? 명령문을 사용하면 function1()이 완료 될 때까지 기다리지 않고 즉시 호출됩니다. – Ravia

1

당신은 대화 상자에서 Associate 버튼과 관련된 기능에 function2()를 호출해야합니다. 그렇지 않으면 사용자가 다이얼로그와 상호 작용하기 전에 function2()으로 전화 할 것입니다.

function function1() { 
    $("#divTicketDetail").dialog({ 
     resizable: false, 
     draggable: true, 
     modal: true, 
     title: "Please associate a Ticket", 
     height: 200, 
     width: 320, 
     buttons: { 
      "Associate": function() { 
       $('#txtDisplayTicket').val($('#txtTicketId').val()); 
       $(this).dialog('close'); 
       function2(); 
      } 
     }, 
     create: function (event, ui) { 
      $("body").css({ overflow: 'hidden' }) 
     } 
    }); 
    return false; 
} 
+0

ajax call()은 function1() 및 function2()가 실행되기 전에 호출됩니다. – Ravia

+1

AJAX 호출에서 'function1' 또는'function2'에 의존하는 어떤 것도 표시되지 않습니다. 그렇다면,'function2' 내부에서 수행되어야합니다. – Barmar

+0

Barmar, 고마워. – Ravia