2014-02-23 1 views
0

아래 코드를 사용하면 사용자가 보내기 버튼을 누르지 않으면 "이탈하는 페이지"로 경고합니다. 그러나 사용자가 양식 상자를 채우지 않으면 '페이지를 떠나는'경고 메시지를 중지 할 수 있습니까?

없음 폼 상자는 + 보내기 버튼에 가득는 경고가
는 모든 형태의 상자가 채워되지 않거나 사용자가 경고 다시 = 쇼 "페이지를 떠나지을"페이지를 떠나거나 가고 싶은 = 누르면페이지를 벗어나는 선택적 경고 메시지

var warning = true; 
window.onbeforeunload = function() { 

    if (warning) { return "You have made changes on this page that you have not yet confirmed. If you navigate away from this page you will lose your unsaved changes"; 

} 

} 

$('form').submit(function() { 

    window.onbeforeunload = null; 

}); 
+0

어, 사이트에서이 작업을 수행 할 때가 싫습니다. 그것은 내가 다시 두 번째로 돌아가는 것에 관해 생각하게하는 확실한 불 방법이다 –

+0

그러나 긍정 (그것이 가능하다). '.submit()'콜백에서 각각의 폼 엘리먼트가 값이 있는지를 검사 할 조건이있다. –

답변

0

양식 요소의 내용에 비헤이비어를 적용해야하는 경우 언로드 동작을 구성하기 위해 내용을 확인하거나 내용의 변경 사항을 청취해야합니다.

양식 내용을 확인하는 것은 아마도 가장 빠릅니다. 사용자가 실제로 탐색하려고하는 경우에만해야하기 때문에 모든 양식 요소에서 일련의 수신기를 관리 할 필요가 없습니다 일단 사용자가 수정을 시작하면 더 이상 신경 쓰지 않는 이벤트를 발생시킵니다.

+0

제 영어 실력이 좋지 않습니다. 샘플 코드를 보여줄 수 있습니까? 감사합니다. – user3344319