jQuery: Submit-Button deaktivieren, wenn keine Checkbox ausgewählt ist
Tutorial von Stefan Trost | Letztes Update am 22.02.2023 | Erstellt am 27.11.2013
Manchmal möchte man das Abschicken eines Formulars erst dann erlauben, wenn der Nutzer eine oder mindestens eine Checkbox ausgewählt hat. In diesem kleinen Tutorial möchte ich euch zeigen, wie ihr das mit JavaScript und jQuery hinbekommen könnt.
Das folgende Skript sorgt dafür, dass der Submit-Button immer nur dann aktiv ist, wenn mindestens eine Checkbox der zugehörigen Form selektiert ist.
HTML
Unser HTML ist ein simples Formular mit drei Checkboxen und einem Submit-Button:
<form action=""> <input class="cbox" type="checkbox" name="cb1" value="1"> 1 <input class="cbox" type="checkbox" name="cb2" value="2"> 2 <input class="cbox" type="checkbox" name="cb3" value="3"> 3 <input id="bt_submit" type="submit" value="Senden"> </form>
JavaScript/jQuery
Den folgenden jQuery-Code lassen wir direkt nach dem Laden der HTML-Seite ausführen, indem wir $(document).ready() verwenden:
<script type="text/javascript"> $(document).ready(function() { $('#bt_submit').attr("disabled", true); $('.cbox').change(function() { $('#bt_submit').attr('disabled', $('.cbox:checked').length == 0); }); }); </script>
Zunächst setzen wir unseren Submit-Button auf disabled (dazu mehr im nächsten Abschnitt). Anschließend belegen wir die Checkboxen mit einer Funktion, die bei jeder Änderung des Zustandes der Checkboxen den Submit-Button anpasst und abhängig von der Selektierung aktiviert oder deaktiviert. Dazu prüfen wir die Anzahl der selektierten Checkboxen auf 0 und setzen das disabled-Attribute als diese Bedingung stimmt.
Wichtig: Nutzer mit deaktiviertem JavaScript beachten
Diese Funktion funktioniert natürlich nur dann, wenn der Nutzer in seinem Browser JavaScript aktiviert hat und ersetzt keinen serverseitigen Check, der immer noch zusätzlich durchgeführt werden sollte.
Aus diesem Grund setzen wir das "disabled"-Attribut des Submit-Buttons auch erst über unseren JavaScript-Code und nicht bereits im HTML, was man theoretisch ja auch machen könnte. So ist der Submit-Button beim Laden der Seite zunächst nicht deaktiviert, auch wenn zu diesem Zeitpunkt keine Checkbox ausgewählt ist. Für Nutzer mit aktivem JavaScript wird der Button sofort nach dem Laden deaktiviert, diese Nutzer bekommen gar nicht mit, dass der Button einmal aktiv war. Für Nutzer mit deaktiviertem JavaScript kann der JavaScript-Code dagegen nicht ausgeführt werden. Für diese Nutzer bleibt der Button aktiv und das Formular nutzbar. Hätten wir den Button sofort über HTML auf disabled gesetzt, wäre das Formular für diese Nutzer nicht verwendbar.
Über den Autor
Software von Stefan Trost finden Sie auf sttmedia.de. Benötigen Sie eine individuelle Software nach Ihren eigenen Wünschen? Schreiben Sie uns: sttmedia.de/kontakt
Profil anzeigen
Ähnliche Themen
jQuery: DIV-Container abhängig von Checkbox anzeigen oder ausblenden
Tutorial | 2 Kommentare
jQuery: Komplettes Formular abschicken und Inhalt mit Ajax empfangen
Tutorial | 12 Kommentare
JavaScript: Submit einer Form abfangen
Tutorial | 0 Kommentare
PHP: Formular mit vielen Checkboxen komfortabel an Skript übergeben
Tipp | 10 Kommentare
HTML Formular: Weiterleitung abhängig von Radiobutton oder Checkbox
Tutorial | 0 Kommentare
jQuery: Hinweis beim Verlassen der Seite wenn ein Formular noch nicht abgeschickt wurde
Tutorial | 1 Kommentar
jQuery: Window.OnBeforeUnload Warnung anzeigen außer wenn Submit-Button geklickt wurde
Tipp | 0 Kommentare
Wichtiger Hinweis
Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.
Jetzt mitmachen
Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.
Und falls man nur eine einzelne Checkbox hat, geht es noch viel einfacher:
In this.checked steht, ob die geklickte Checkbox gerade ausgewähltes oder nicht.
Mit !this.checked setzen wir unseren Submit-Button immer auf genau das Gegenteil.
28.11.2013 um 02:47
Bin kein JavaScript Experte, möchte aber fragen, wie das ganze aussieht, wenn zwei Checkboxen angeklickt werden müssen, bevor der Sendbutton aktiviert wird?
01.10.2020 um 18:12
Meinst du so etwas hier:
Wobei deine Checkboxen beide die Klasse "cbox" haben müssen und eine Checkbox die ID "cbox1" und die andere die ID "cbox2" hat.
01.10.2020 um 19:21
Hier:
Das ist die vollständige korrekte Lösung.
02.10.2020 um 08:15
Ja, das war es wohl.
Recht herzlichen Dank für die super schnelle Hilfe!
01.10.2020 um 21:26