2013-04-23 12 views
0

텍스트 상자가 있는데 제출하지 않은 변경 사항이있는 페이지를 떠날 때 경고를 표시하고 싶습니다 (전송 버튼을 클릭 한 경우 제외). 제출 버튼을 누르면 경고 메시지가 표시되는 것을 제외하고는 문제가 해결되지 않습니다.저장 버튼을 클릭 할 때를 제외하고 언로드시 jQuery 경고

가 나는 BBCode는의 조치를 취할 내 Set.js, 내 script.js

script.js

$(document).ready(function() { 
    var saveClicked = false; 

    $(window).bind('beforeunload', function() { 
     if(y != $("#markItUp").val()) { 
      if(!saveClicked) {   
       return 'You have unsaved changes!'; 
      } 
     } 
    }); 
}); 

Set.js

{ 
    name: 'Save', 
    className:"miu-save", 
    call: function() { 
     $('form#edit').submit(); 
     saveClicked = true; 
    } 
}, 

답변

2

변경이

{ 
    name: 'Save', 
    className:"miu-save", 
    call: function() { 
     $('form#edit').submit(); 
     saveClicked = true; 
    } 
}, 

{ 
    name: 'Save', 
    className:"miu-save", 
    call: function() { 
     saveClicked = true; // true is called first here if you notice and then submit 
     $('form#edit').submit(); 
    } 
}, 

와이 필요하다

var saveClicked = false; 
$(document).ready(function(){ 

당신이 document.ready 함수 외부 VAR를 saveClicked 선언하는

+0

그래, 고마워, 내가 이것을 시도해 볼게 :) –

+0

이것은 큰 일 :) 감사합니다! –

0

2 개 파일이 이 방법이 효과가 있을지는 모르겠지만 수행을 시작하면 어떨까요?

은 다음 트릭을 할 것

$('form#edit').submit(); 

을한다.

+0

난 당신이 –

1

saveClicked 외부에 document.ready을 넣으십시오. 그런 식으로 전역화할 것이고 그 중 하나만 true 또는 false으로 값을 설정할 수 있습니다.

그래서 스크립트가 있어야합니다 같은 :

var saveClicked = false; 
    $(document).ready(function(){ 

$(window).bind('beforeunload', function(){ 
    if(y != $("#markItUp").val()){ 
    if(!saveClicked){   
    return 'You have unsaved changes!'; 
    }} 
}); 
}); 
+0

오 괜찮 감사합니다 :) –

+0

아니, 이것은 나를 위해 작동하지 않았다 :( –

+0

당신이 온라인 링크 어디를 제공 할 수 무슨 뜻인지 얻을 확실하지 않다 이걸 확인할 수 있니? – gaurav