>백엔드 개발 >PHP 튜토리얼 >javascript - beforeunload 이벤트가 트리거되는 양식 제출을 피하는 방법

javascript - beforeunload 이벤트가 트리거되는 양식 제출을 피하는 방법

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB원래의
2016-08-04 09:21:311477검색

구체적인 요구 사항은 다음과 같습니다.
beforeunload 이벤트를 창에 바인딩하고 페이지를 전환하거나 닫을 때 입력 내용이 저장되었는지 확인하지만 제출 버튼을 클릭하면 beforeunload 이벤트도 트리거됩니다. . 양식 제출이 이 이벤트를 유발하는 것을 방지하는 방법은 무엇입니까?

코드 일부:

<code>    if ($scope.model.isSaving) {
      window.onbeforeunload = function (e) {
        e = e || window.event;

        // 兼容IE8和Firefox 4之前的版本
        if (e) {
          e.returnValue = '关闭提示';
        }

        // Chrome, Safari, Firefox 4+, Opera 12+ , IE 9+
        return '关闭提示';
      };
    }</code>

버튼의 제출 이벤트에서 바인딩을 해제할 수 있습니다

<code>$(window).off('beforeunload')或者window.onbeforeunload = null;
</code>

답글 내용:

구체적인 요구 사항은 다음과 같습니다.
beforeunload 이벤트를 창에 바인딩하고 페이지를 전환하거나 닫을 때 입력 내용이 저장되었는지 확인하지만 제출 버튼을 클릭하면 beforeunload 이벤트도 트리거됩니다. . 양식 제출이 이 이벤트를 유발하는 것을 방지하는 방법은 무엇입니까?

코드 일부:

<code>    if ($scope.model.isSaving) {
      window.onbeforeunload = function (e) {
        e = e || window.event;

        // 兼容IE8和Firefox 4之前的版本
        if (e) {
          e.returnValue = '关闭提示';
        }

        // Chrome, Safari, Firefox 4+, Opera 12+ , IE 9+
        return '关闭提示';
      };
    }</code>

버튼의 제출 이벤트에서 바인딩을 해제할 수 있습니다

<code>$(window).off('beforeunload')或者window.onbeforeunload = null;
</code>

바인딩 버튼 이벤트, Ajax 제출 양식

클릭 이벤트를 제출한 후 현재 페이지에 머무르고 이 이벤트를 트리거하지 마세요! 이것이 효과가 있는지 모르겠습니다.

Ajax를 사용하여 양식을 제출하고 결과를 반환받을 수 있습니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.