2012-07-09 3 views
0

JQuery 1.7.2를 사용 중이며 ajax 호출이 발생하면 'isDirty'플래그를 사용하여 사용자에게 확인 메시지를 전달하려고합니다. 사용자가 확인을 클릭하면 아약스 호출이 발생하고 확인 메시지가 취소되면 아약스 호출이 발생하지 않아 페이지에 사용자가 남습니다. 내 페이지에 다음과 같은 기능이 있습니다.JQuery .ajaxStart가 호출되지 않습니다.

... 
$(function() { 
    $(document).ajaxStart(function() { 
     if (isDirty) { 
      var status = confirm('You have unsaved changes! Are you sure you want to continue?'); 
      if (status) { 
       isDirty = false; 
      } 
      return status; 
     } 
     return true; 
    }); 
... 
}); 

.ajaxStart는 절대로 호출되지 않습니다. .ajaxStart를 .AjaxSend로 바꾸면 호출되지만, 확인을 취소하고 함수에서 'false'가 반환되면 어쨌든 ajax 요청을로드합니다.

답변

0

AJAX 쿼리를 만들고 즉시 취소하는 것은 좋지 않습니다. AJAX 쿼리를 만들기 전에 테스트를 수행해야합니다.

사용자 정의 AJAX 함수를 작성하여 jQuery를 wrappring하여 플래그를 확인하고 사용자 확인 후 쿼리를 시작할 수 있습니다.

그런 다음 $ .ajax() 대신 ajaxSecure()를 사용하십시오.

관련 문제