Validierung ist eine Methode, um die von Benutzern eingegebenen Daten zu verwalten und sicherzustellen, dass nur korrekte Werte gespeichert werden. Zum Beispiel kann sie verhindern, dass zwei Aufgaben zur gleichen Zeit derselben Person zugewiesen werden.
Um Benutzereingaben zu validieren, können Sie Ereignisse verwenden, die von der dhtmlxGantt API bereitgestellt werden. Diese Ereignisse ermöglichen es Ihnen, Eingabedaten basierend auf ihrer Gültigkeit abzufangen und zu bearbeiten.
Hier sind einige wichtige Ereignisse, die häufig für die client-seitige Validierung verwendet werden:
Eine einfache Möglichkeit, die Validierung zu handhaben, ist die Verwendung des onLightboxSave Ereignisses. Dieses Ereignis wird ausgeführt, wenn die 'Speichern'-Schaltfläche im Formular geklickt wird. Wenn das Ereignis true zurückgibt, werden die Änderungen gespeichert. Wenn es false zurückgibt, wird der Vorgang gestoppt und das Lightbox-Fenster bleibt geöffnet.
Hier ist ein Beispiel, das das Speichern einer Aufgabe verhindert, wenn keine Beschreibung oder kein zugewiesener Benutzer angegeben ist:
gantt.attachEvent("onLightboxSave", function(id, item){
if(!item.text){
gantt.message({type:"error", text:"Geben Sie eine Aufgabenbeschreibung ein!"});
return false;
}
if(!item.user){
gantt.message({type:"error", text:"Wählen Sie einen Mitarbeiter für diese Aufgabe aus!"});
return false;
}
return true;
});
Related sample: Validate lightbox values
Der oben beschriebene Ansatz hat eine Einschränkung—er funktioniert nicht, wenn Änderungen mit einem Inline-Editor vorgenommen oder Aufgaben direkt im Gantt-Diagramm verschoben werden.
Um alle Änderungen zu bearbeiten, einschließlich Bearbeiten, Erstellen und Löschen von Aufgaben, können Sie das dataProcessor Objekt verwenden. Insbesondere können Sie dessen onBeforeUpdate Ereignis nutzen, das ausgelöst wird, bevor Daten an den Server gesendet werden und nach jeder Änderung im Gantt-Diagramm (nicht nur im Lightbox-Fenster).
Hier ist ein Beispiel:
gantt.init("gantt_here");
gantt.load("data.php");
var dp = new gantt.dataProcessor("data.php");
dp.init(gantt);
dp.attachEvent("onBeforeUpdate", function (id, status, data) {
if (!data.text) {
gantt.message("Der Text des Ereignisses darf nicht leer sein!");
return false;
}
return true;
});
In diesem Beispiel:
Wenn ein Feld die Validierung nicht besteht, werden die Änderungen nicht an den Server gesendet. Stattdessen bleiben sie auf der Client-Seite, was eine weitere Verarbeitung ermöglicht, falls erforderlich.
Zurück nach oben