122 Stimmen

Wie kann man verhindern, dass ein Formular von der Client-Seite aus mehrfach gesendet wird?

Wenn die Antwort langsam ist, kann es vorkommen, dass man mehrmals auf die Schaltfläche "Senden" klickt.

Wie kann man dies verhindern?

1voto

Bachas Punkte 203

Verwenden Sie diesen Code in Ihrem Formular. Er verarbeitet mehrere Klicks.

<script type="text/javascript">
    $(document).ready(function() {
        $("form").submit(function() {
            $(this).submit(function() {
                return false;
            });
            return true;
        });     
    }); 
</script>

wird es mit Sicherheit funktionieren.

1voto

Aurel Punkte 3454

Dies ermöglicht ein Senden alle 2 Sekunden. Im Falle der Frontvalidierung.

$(document).ready(function() {
    $('form[debounce]').submit(function(e) {
        const submiting = !!$(this).data('submiting');

        if(!submiting) {
            $(this).data('submiting', true);

            setTimeout(() => {
                $(this).data('submiting', false);
            }, 2000);

            return true;
        }

        e.preventDefault();
        return false;
    });
})

0voto

user2427182 Punkte 31

Der beste Weg, um zu verhindern, dass sich mehrere Personen anmelden, ist folgender Übergeben Sie einfach die ID der Schaltfläche in der Methode.

    function DisableButton() {
        document.getElementById("btnPostJob").disabled = true;
    }
    window.onbeforeunload = DisableButton;

0voto

Rish Punkte 1203

Dies mit Javascript zu tun ist recht einfach. Im Folgenden finden Sie den Code, der die gewünschte Funktionalität bietet:

$('#disable').on('click', function(){
    $('#disable').attr("disabled", true);
  });

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="disable">Disable Me!</button>

0voto

Kalyani Punkte 301

Die einfachste Lösung besteht darin, die Schaltfläche beim Anklicken zu deaktivieren und sie nach Abschluss des Vorgangs zu aktivieren. Um ähnliche Lösung auf jsfiddle zu überprüfen:

[click here][1]

Sie können auch eine andere Lösung für dieses Problem finden Antwort .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X