>웹 프론트엔드 >JS 튜토리얼 >jQuery에서 이중 양식 제출을 방지하는 방법: 어떤 기술이 가장 효과적입니까?

jQuery에서 이중 양식 제출을 방지하는 방법: 어떤 기술이 가장 효과적입니까?

DDD
DDD원래의
2024-11-09 15:07:02212검색

How to Prevent Double Form Submissions in jQuery: What Techniques Work Best?

jQuery에서 이중 양식 제출을 방지하는 방법

처리하는 데 상당한 시간이 걸리는 양식을 작업할 때 사용자의 실수로 인한 실수를 방지합니다. 양식을 여러 번 제출하는 것이 중요합니다. 이 문서에서는 jQuery를 사용하여 이를 달성하는 방법에 대해 설명합니다.

초기 시도

초기 접근 방식에서는 양식 제출 시 모든 입력과 버튼을 비활성화하는 것이 포함되었습니다. 그러나 이 기술로 인해 Firefox에서는 양식이 제출되지 않았습니다.

향상된 솔루션

해결책은 제출 버튼만 선택적으로 비활성화하는 것입니다. 모든 입력을 비활성화할 수 있기 때문입니다. 양식 제출을 방해합니다. 다음 jQuery 코드는 이를 수행합니다.

$('button[type=submit], input[type=submit]').prop('disabled', true);

대체 플러그인 접근 방식

또 다른 옵션은 jQuery의 data() 함수를 활용하여 표시하는 아래 jQuery 플러그인을 사용하는 것입니다. 양식을 제출된 상태로 유지하여 후속 제출을 방지합니다.

jQuery.fn.preventDoubleSubmission = function() {
  $(this).on('submit', function(e) {
    var $form = $(this);

    if ($form.data('submitted') === true) {
      e.preventDefault();
    } else {
      $form.data('submitted', true);
    }
  });

  return this;
};

사용:

$('form').preventDoubleSubmission();

AJAX 양식 제외

응용 프로그램에 다음과 같은 AJAX 양식이 있는 경우 여러 제출을 허용해야 하는 경우 아래와 같이 클래스를 추가하여 제출을 제외할 수 있습니다.

$('form:not(.js-allow-double-submission)').preventDoubleSubmission();

위 내용은 jQuery에서 이중 양식 제출을 방지하는 방법: 어떤 기술이 가장 효과적입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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