Maison >interface Web >js tutoriel >Comment puis-je empêcher les soumissions de formulaires doubles avec jQuery ?

Comment puis-je empêcher les soumissions de formulaires doubles avec jQuery ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-08 20:01:02228parcourir

How Can I Prevent Double Form Submissions with jQuery?

Prévenir les soumissions de formulaires doubles avec jQuery

Dans certains scénarios, il devient impératif d'empêcher les utilisateurs de soumettre à nouveau des formulaires pendant que le serveur est encore en train de traiter le soumission initiale. Cet article fournit une solution à ce problème en utilisant jQuery, en promettant de préserver la fonctionnalité du formulaire tout en inhibant efficacement les doubles soumissions.

Problèmes causant le code jQuery

Votre code jQuery initial désactive tout éléments du formulaire, y compris le bouton de soumission, ce qui entraîne la non-soumission du formulaire. Il est crucial de désactiver uniquement le bouton de soumission, car plusieurs boutons peuvent exister avec des fonctionnalités différentes.

Solution révisée

Une solution révisée utilise les attributs de données dans jQuery pour éviter les doubles soumissions sans modification des boutons de soumission. Voici le code amélioré :

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

        if ($form.data('submitted') === true) {
            // Previously submitted - don't submit again
            e.preventDefault();
        } else {
            // Mark it so that the next submit can be ignored
            $form.data('submitted', true);
        }
    });

    // Keep chainability
    return this;
};

Utilisation

Pour implémenter cette solution, invoquez simplement la fonction PreventDoubleSubmission sur l'élément de formulaire :

$('form').preventDoubleSubmission();

Gestion des formulaires AJAX

Si des formulaires spécifiques doivent autoriser plusieurs soumissions au cours d'un chargement de page, vous pouvez les exclure à l'aide d'une classe :

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

En incorporant cette solution améliorée , vous pouvez efficacement empêcher les doubles soumissions de formulaires dans vos applications Web, garantissant ainsi une expérience utilisateur transparente et évitant les incohérences potentielles des données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn