2012-03-01 4 views
1

방문자가 "취소"를 누르거나 채워진 텍스트 필드로 돌아 가려는 경우 경고를 표시하는 다음 기능이 있습니다. 이 기능은 전반적으로 완벽하게 작동하지만 내가 제출 한 경우에는 작동하지 않습니다. 경고는 버튼을 눌렀을 때 보여 주며 그렇게 원하지 않습니다.제출시 타격시 onbeforeunload 경고 표시 안 함

var changed_flag = 0; 

$('input').change(function() { 
    changed_flag = 1; 
}); 

window.onbeforeunload = function() { 
    if(changed_flag) { 
     return 'You haven't saved your work!' 
    } 
}; 

나는 내가 $('input').change(...을 편집하고 input[type="submit"]을 추가해야합니다 알고 있지만 방법과 위치를 모르겠어요. 아무도 내가이 문제를 해결할 수있는 방법을 알고 계십니까?

미리 감사드립니다. 다른 방법으로 대신 바인딩 해제의

답변

2

는 그 기능이 전혀 작동하지 않았다

$('form').submit(function() { 
    changed_flag = 0; 
}); 
+0

많은 감사! :) 문제는 이제 해결되었습니다! – Erik

+0

의견을 제출하는 대신 내 답변을 복사 해 주셔서 감사합니다. –

0
$('form').submit(function() { 
    $(window).unbind('beforeunload'); 
}); 

은 그냥 제출 버튼은 0

<input type="submit" onmousedown="changed_flag = 0" /> 

편집으로 다시 이벤트 또는 설정 changed_flag을 제거해야 그냥 changed_flag = 0

+0

보십시오 : /이 어떻게 그것을'changed_flag = 0 '을 추가하는 방법은 무엇입니까? – Erik

+1

@Erik :'changed' 이벤트 핸들러에서'changed_flag = 1;'처럼'submit' 이벤트 핸들러에'changed_flag = 0;'을 넣습니다. –

+0

@FelixKling : 다음과 같이 : '... (function() {changed_flag = 0}); – Erik

0

을 할 수있는 : 제 생각에이를 넣어 양식을 다른 방식으로 제출하는 경우 (예 : Enter 또는 다른 기능을 통해) onsubmit 처리기의 코드.

+0

html 태그에 이벤트 처리기를 넣는 것은 좋지 않으며 양식 입력을 위해 enter 키를 누르는 것 같은 경우에는 작동하지 않습니다. –

관련 문제