HTML button nach klick deaktivieren

Sarius87

Banned
Registriert
Mai 2016
Beiträge
888
hallo, habe hier so einen button um eine nachricht zu versenden ... derzeit kann man den spammen und dann kommt die nachricht X mal an. wie mache ich dass dieser nach dem 1. klick ausgeführt wird und dann deaktiviert wird bis man die seite neu aufruft oder so ? habe mal gegoogelt aber nichts passendes gefunden...


HTML:
<form action="?send" method="POST">
	<input class="btn btn-success" type="submit" value="Senden"></a>
</form>
 
Am Beispiel Bootstrap-Button:

HTML:
Code:
<button type="button" id="ID" class="btn btn-default">Klick</button>

Javascript:
Code:
$("#ID").on("click", function() {
    $(this).prop("disabled", true);
});
 
HTML:
<form id="formABC" action="?send" method="POST">
    <input type="submit" id="btnSubmit" class="btn btn-success" value="Senden"></input>
</form>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
    $(document).ready(function () {

        $("#formABC").submit(function (e) {

            //stop submitting the form to see the disabled button effect
            e.preventDefault();

            //disable the submit button
            $("#btnSubmit").attr("disabled", true);

            //disable a normal button
            $("#btnTest").attr("disabled", true);

            return true;

        });
    });
</script>

</body>
</html>

da wird er jetzt deaktiviert aber die action passiert auch nicht ... wieso ? :/
 
steht doch da:

//stop submitting the form to see the disabled button effect
e.preventDefault();
 
Eventuell die Codezeile entfernen die die Form Action verhindert? Ach komm, bisschen Kopf einschalten musst du auch :rolleyes:

Und um ganz genau zu sein, das hier weg:
HTML:
//stop submitting the form to see the disabled button effect
​e.preventDefault();
 
den event willst du ja ausführen.. nur den button nach dem klick deaktivieren.. wie ich es verstehe oder?

wozu nutzt man heut zu tage noch jquery?

einfach per vanilla js.. sollte genau das machen was du willst.. button wird disabled und die form trotzdem submitet
Code:
document.querySelector('#btnSubmit')
  .addEventListener('click', event => event.target.setAttribute('disabled', true))
 
Wenn du das doppelte Versenden sicher verhindern willst, musst du den Server so gestalten, dass der die Nachrichten nur einmal weiterleitet.

Alles andere ist nur eine optisch Linderung der Symptome auf Clientseite, aber keine Lösung.
 
Zurück
Oben