2011-08-11 6 views

답변

6

실제로 뭔가 변경 한 경우에만 사용자에게 메시지를 보내고 싶습니다. 다음과 같은 것 :

var changesMade = false; 

function onDataChanged() { 
    changesMade = true; 
} 

$('input:text, textarea, select').change(onDataChanged); 
$('input:checkbox, input:radio').click(onDataChanged); 

$(window).bind('beforeunload', function() { 
    if (changesMade) { 
     return 'Changes have been made. Are you sure you want to leave the page?'; 
    } else { 
     return null; 
    } 
}); 
+0

이것은 Chrome에서 두 개의 대화 상자를 표시합니다. – pimvdb

+1

오른쪽 -o. 코드 예제에서이를 수정했습니다. – FishBasketGordo

+0

클릭해도 변경된 것은 아닙니다. – codecompleting

0

onbeforeunload 이벤트 :이 메시지가 표시됩니다 일부 브라우저에

$(window).bind('beforeunload', function() { 
    return 'Are you sure?'; 
}); 

는 다른 브라우저에 메시지가 표시되지 않습니다. 사용자가 선택할 수 있도록 모든 브라우저에서 LeaveStay 버튼이있는 대화 상자를 표시합니다 (알고있는 한).

0

beforeunload 이벤트를 사용하십시오.

$(window).bind('beforeunload', function() { 
     return confirm("Alert user"); 
    }); 
+0

이것이 원하는 효과가 있는지 확실하지 않습니다. Chrome에서 확인 메시지가 나타나면 대화 상자를 떠나는 페이지가 내용으로 'true'또는 'false'로 표시됩니다. – pimvdb

관련 문제