Verwenden von Client- und Servercode in einer UI-Aktion
Sie können ein Skript verwenden, um Eingaben beim Klicken auf eine UI-Aktion auf der Clientseite zu validieren, bevor Sie den Datensatz auf der Serverseite aktualisieren. Der Benutzer muss nicht zweimal auf die Schaltfläche klicken, um die erforderlichen Felder zu validieren und den Datensatz zu aktualisieren.
Das Skript ruft die Clientfunktion zur clientseitigen Validierung auf, und die UI-Aktion schließt die Aufgabe ab, wenn sie erfolgreich ist. Der Code, der ohne die Anweisung onclick ausgeführt wird, stellt sicher, dass die serverseitige Funktion erst ausgeführt wird, wenn die Clientfunktion nicht mehr ausgeführt wird. Bei Erfolg wird die serverseitige Funktion ausgeführt und aktualisiert den Datensatz.
// Client-side onclick function
function resolveIncident() {
// Set the 'Incident state' and 'State' values to 'Resolved', and display mandatory fields
g_form.setValue('incident_state', 6);
g_form.setValue('state', 6);
g_form.setValue('resolved_by', g_user.userID);
// Call the UI action and skip the 'onclick' function
gsftSubmit(null, g_form.getFormElement(), 'resolve_incident'); //MUST call the 'Action name' set in this UI Action
}
// Code that runs without 'onclick'
// Ensure call to server-side function with no browser errors
if (typeof window == 'undefined')
serverResolve();
// Server-side function
function serverResolve() {
current.incident_state = IncidentState.RESOLVED;
current.state = IncidentState.RESOLVED;
current.resolved_by = gs.getUserID();
current.update();
}
gsftSubmit (Zeichenfolgensteuerung, Objektformular, Zeichenfolge action_name)
Sendet ein Formular, als ob der Benutzer auf eine UI-Aktion geklickt hätte, nachdem er die erforderlichen Felder überprüft und Client-Skripts des Typs „onSubmit()“ ausgeführt hat. Ermöglicht den Aufruf von clientseitigem Code und serverseitigem Code in einer einzigen UI-Aktion.
| Name | Typ | Beschreibung |
|---|---|---|
| Kontrolle | Zeichenfolge | Name einer Formularschaltfläche, auf der Sie einen Benutzerklick simulieren möchten. Verwenden Sie andernfalls NULL. |
| Formular | Objekt | Optional. Das Formularelement, das die übermittelte Eingabe enthält. Sie können diesen Wert abrufen, indem Sie die Methode g_form.getFormElement() aufrufen. |
| action_name | Zeichenfolge | Aktionsname. Dieser Wert wird im Datensatz bereitgestellt, der in der Tabelle „UI-Aktionen“ [sys_ui_action] aufgeführt ist. Beispiel: |