2010-04-16 4 views
0

현재 onunload 이벤트를 통해 호출 된 함수로 페이지를 떠날 때 사용자가 변경 사항을 취소하지 않았는지 확인하는 양식이 있습니다.자바 스크립트 onunload 양식 제출이 데이터를 제출하지 않습니다.

function saveOnExit() { 
    var answer = confirm("You are about to leave the page. All unsaved work will be lost. Would you like to save now?"); 
    if (answer) { 
     document.main_form.submit(); 
    } 
} 

을 그리고 여기 폼의 : 다음은 기능의

<body onunload="saveOnExit()"> 
<form name="main_form" id="main_form" method="post" action="submit.php" onsubmit="saveScroll()"> 
    <textarea name="comments"></textarea> 
    <input type="submit" name="submit2" value="Submit!"/> 
</form> 

내가 잘못 여기서 뭘하는지 모르겠어요. 양식의 제출 버튼을 누르면 데이터가 제출되고 데이터베이스에 저장됩니다. 그러나 onunload 이벤트를 통해 양식을 제출하려고해도 내가 말할 수있는 것에서 어떤 것도 저장되지 않습니다. 제출 버튼에 onclick 경고를 추가하고 양식 요소에 경고를 보내려고했는데 제출 버튼이 트리거되고 양식이 제출되는지 확인할 수 있습니다. 그러나 아무것도 전달 된 데이터베이스에 저장되지 않습니다. 내가 뭘 잘못하고 있는지에 대한 어떤 생각?

감사합니다.

답변

3

onbeforunload

언로드 이벤트 전에 화재가 페이지가 언로드되는 이벤트를보십시오.

또한 데이터를 제출하지 않아야하는 조건의 함수 끝에 return false을 제공하십시오.

+0

onbeforeunload 제안에 감사드립니다. 내 코드를 되짚어서 다른 방식으로 작동하도록했습니다. – holic87

관련 문제