JavaScript Checkbox Beispiel 3: Validation - Gültigkeitsprüfung

In einem Formular ist es oft nötig bestimmte Konfigurationen von Checkbox-Elementen auf vorgegebene Rahmenbedingungen abzustimmen. Hierzu können JavaScript-Funktionen auf Seite des Clients mittels Validation der Benutzereingabe dafür sorgen, dass die geforderten Eingabebedingungen gegeben sind. Im Falle von Eingabefehlern kann der Benutzer beispielsweise unter Verwendung einer Alert-Box auf diese Fehler hingewiesen werden.

Folgendes Beispiel prüft – nach Anklicken eines Buttons – durch eine Funktion, ob die vom Benutzer getätigten Einstellungen der Checkbox-Gruppe korrekt ist gibt eine dem Prüfergebnis entsprechende Meldung aus. Das onClick-Event wird auch hier wieder dazu verwendet, die Validierrungsfunktion zu starten. Näheres zum Thema JavaScript und Events finden Sie unter Event.

Der Zugriff auf die Elemente der Checkbox-Gruppe erfolgt über den Namen der in der Gruppe enthaltenen Elemente (hier ergebnis). Innerhalb des HTML-Elementenbaumes werden die einzelnen Checkbox-Elemente der Gruppe in einem Array gespeichert. Auf die Elemente wird per Vektor-Operator zugegriffen. Mittels Checked-Eigenschaft der einzelnen Elemente wird die korrekte Konfiguration in der If-Anweisung abgefragt. Ist die Eingabe korrekt, so wird in einer Alert-Box eine entsprechend positive, andernfalls eine negative Rückmeldung an den Besucher gerichtet. Alert-Boxen werden über das JavaScript-Objekt Window geöffnet.

<form name="formular3">
  Ein M&auml;usemelker melkt:<br>
  <input type="checkbox" name="ergebnis" value="hund"> Hunde<br>
  <input type="checkbox" name="ergebnis" value="katze"> Katzen<br>
  <input type="checkbox" name="ergebnis" value="maus"> M&auml;use<br>
  <input type="button" onclick="validate_checkbox ()" value="Validate">
  <script language="javascript" type="text/javascript">
  <!-- // JavaScript-Bereich für ältere Browser auskommentieren
  // Die nächste Funktion prüft, ob die Stati der Checkboxen im Hinblick auf
  // die Fragestellung korrekt gesetzt sind (validation).
  function validate_checkbox () {
    // Konfiguration der Checkbox-Elemente prüfen...
    if (!document.formular3.ergebnis[0].checked &&
        !document.formular3.ergebnis[1].checked &&
        document.formular3.ergebnis[2].checked)
      // und im Falle einer korrekten Eingabe eine Erfolgsmeldung...
      alert ('Eingabe korrekt!');
    else
      // oder bei Falscher Eingabe eine Fehlermeldung ausgeben.
      alert ('Falsche Eingabe!');
  }
  // -->
  </script>
</form>
Ein Mäusemelker melkt:
Hunde
Katzen
Mäuse

JavaScript Checkbox Beispiel 4: Check - Auswahl eines Checkbox-Elements

Das nächste Checkbox-Beispiel demonstriert die Möglichkeiten zur scriptgesteuerten Auswahl einzelner Checkbox-Elemente. Um eine Checkbox auf „Checked” zu setzen (aktivieren; check) muss lediglich die Checked-Eigenschaft über den JavaScript Code auf TRUE gesetzt werden. Eben dies soll die im folgenden Beispiel implementierte Funktion üernehmen.

Im Beispiel wird zunächst eine Gruppe von Radio-Buttons mit dem Namen aufgabe definiert. Die Value-Eigenschaft der Radio-Buttons speichert die zur jeweiligen Aufgabe gehörige Antwortnummer. Mit dem onChange-Event wird auf Änderungen bei der Einstellung der Radio-Buttons reagiert. Ändert der Benutzer die Einstellung der Radio-Buttons, so führt dies zu einem Aufruf der Function checkbox_check, wobei der Value-Wert des angeklickten Radio-Button (durch this.value) an die Funktion übergeben wird.

Weiter unten wird eine Gruppe von Checkboxen definiert, die in ihrer Value-Eigenschaft die Antwortnummer tragen. Auf diese Weise kann das Script die einer Radio-Button-Auswahl zugehörigen Checkbox-Elemente aktivieren. Da eine Auswahl der Checkboxen durch den Benutzer nicht möglich sein soll, werden diese mittels Disabled-Eigenschaft deaktiviert.

Durch die unten gelistete Funktion checkbox_check wird die Zuordnung der Checkbox-Einstellungen zur Aufgabenstellung realisiert. Die Funktion erhält als Parameter einen Wert, der dazu genutzt wird eine zur Aufgabe zugehörige Checkbox-Einstellung zu setzen – alle Checkboxen, bei denen der Value-Wert mit dem übergebenen Wert übereinstimmt, sollen gesetzt werden. Einzelne Elemente des Formulars werden hier wieder über das Document Object und den Formnamen angesprochen.

Mit der in der Funktion genutzten For-Schleife wird über alle im Formular mit dem Namen formular4 enthaltenen Eingabeelemente iteriert. In den If-Abfragen wird zunächst abgefragt, ob das derzeit zu betrachtende Element ein Element vom Typ Checkbox ist. Dies geschieht, indem die Type-Eigenschaft des Eingabeelements mit dem String „checkbox” verglichen wird. Wird diese Abfrage positiv beantwortet, so wird im nächsten Schritt das der Funktion übergebene geforderte Ergebnis mit der Value-Eigenschaft des in Bearbeitung befindlichen Checkbox-Elements verglichen. Gleichen sich die beiden Werte, so wird die Checkbox aktiviert (check), ansonsten wird sie deaktiviert (uncheck).

<form name="formular4">
  Aufgabe:<br>
  <input type="radio" name="aufgabe" onchange="checkbox_check (this.value)" value="1"> 15 + 9<br>
  <input type="radio" name="aufgabe" onchange="checkbox_check (this.value)" value="2"> 17 + 4<br>
  <input type="radio" name="aufgabe" onchange="checkbox_check (this.value)" value="3"> Antwort auf alle Fragen<br>
  Ergebnis:<br>
  <input type="Checkbox" name="ergebnis" value="2" disabled> 21<br>
  <input type="Checkbox" name="ergebnis" value="3" disabled> 42<br>
  <input type="Checkbox" name="ergebnis" value="1" disabled> 24<br>
  <script language="javascript" type="text/javascript">
  <!-- // JavaScript-Bereich für ältere Browser auskommentieren
  // Die Funktion checkbox_check setzt den Status von Checkbox-Elementen auf
  // TRUE (Checked) bzw. FALSE (Unchecked), falls der im Parameter ergebnis
  // angegebene Parameterwert mit dem Wert der Value-Eigenschaft der jeweiligen
  // Checkbox übereinstimmt.
  function checkbox_check (ergebnis) {
    // Alle im Formular enthaltenen Eingabeelemente durchgehen
    for (var i = 0; i < document.formular4.elements.length; i++)
      // Handelt es sich um eine Checkbox?
      if (document.formular4.elements[i].type == 'checkbox')
        // Stimmt die Value-Eigenschaft der Checkbox mit der
        // ausgewählten Aufgabe überein?
        if (document.formular4.elements[i].value == ergebnis)
          // Ergebnis gehört zur Aufgabe und muss deshalb
          // auf Checked gesetzt werden.
          document.formular4.elements[i].checked = true;
        else
          // Alle anderen Checkboxes: uncheck
          document.formular4.elements[i].checked = false;
  }
  // -->
  </script>
</form>
Aufgabe:
15 + 9
17 + 4
Antwort auf alle Fragen
Ergebnis:
21
42
24
Letzte Posts aus unserem Forum

Script Schrift vergrößern

Hallo wollte gerade das Script für die Schriftvergrößerung testen, aber irgendwie bekomme ich das nicht hin. Habe eine Joomla Website und dort die ... » mehr

von Gast am Donnerstag, 22. April 2010 13:32 in JavaScript - bisher 1 Antwort
Letzter Beitrag: Donnerstag, 22. April 2010 18:05 von alm

Hallo, damit kann man nicht allzu viel anfangen. Soviel ich weiss kann es zuweilen Probleme mit Tabellen-Layouts geben. Dort werden die ... » mehr

Javascript Schriftengröße: Problem bei URL-Übergabe im IE8

Hallo, ich hab eben das Javascript zur Schriftengröße eingebaut, klappt auch wunderbar auf Firefox, aber der IE 8 hat folgendes Problem: - wenn ich ... » mehr

von horst1234 am Dienstag, 23. Februar 2010 13:06 in JavaScript - bisher 1 Antwort
Letzter Beitrag: Dienstag, 23. Februar 2010 14:07 von horst1234

Ich hab das charset im Header geändert (wie in der beispiel.html), und schon klappt es ... » mehr

Dynamisches einfügen von Zeilen in eine Spalte

Hallo, ich möchte gerne eine Zeile zwischen zwei andere Zeilen einfügen. Leider klappt folgender Versuch noch nicht so richtig. Vielleicht kann mir ... » mehr

von Bluecaspar am Mittwoch, 10. Februar 2010 18:09 in JavaScript - bisher 2 Antworten
Letzter Beitrag: Donnerstag, 11. Februar 2010 10:37 von Bluecaspar

Ja genau, das war der Fehler. Vielen Dank Alex. Hier der korrigierte Code: <html> <head> <title> Test ... » mehr

Fenster in Frame erzeugen

Hallo, ich würde gerne ein Fenster in einer Webseite erzeugen. Das Fenster sollte dabei auf ein Frame begrenzt sein, sich also nicht aus diesen ... » mehr

von Bluecaspar am Dienstag, 9. Februar 2010 13:57 in JavaScript - bisher 2 Antworten
Letzter Beitrag: Mittwoch, 10. Februar 2010 09:32 von Bluecaspar

Ja hervorragend, dass ist genau das was ich möchte. Danke ... » mehr

Problem: Kombination mit Lightbox 2

Hallo, ich bin gerade dabei die Galerie mit der Lightbox 2 zu verknüpfen, da ich die Bilder im Vollformat gerne in diesem schicken aufpoppenden ... » mehr

von GoPeter am Montag, 16. November 2009 23:38 in JavaScript - bisher 16 Antworten
Letzter Beitrag: Mittwoch, 18. November 2009 00:32 von GoPeter

Soo...hat lange gedauert...aber jetzt ist es endlich ... » mehr



¬ Insolvenzrecht