Hallo,
danke für das Lob! Das Flag „Erforderlich“ kennzeichnet ein Feld nur als Pflichtfeld. Ob und wie ein PDF-Programm darauf reagiert, entscheidet das Programm, mit dem das Formular ausgefüllt wird. Ein Speichern oder Drucken verhindern kann man damit nicht. Im Formular-Editor lassen sich Skripte nur an Felder hängen (Aktion, Validierung, Berechnung, Formatierung, Tastatureingabe, Fokus, Fokusverlust), nicht an das Speichern oder Drucken des Dokuments.
Was geht: eine Schaltfläche „Pflichtfelder prüfen“, die alle als „Erforderlich“ markierten Felder durchgeht und meldet, welche noch leer sind. Dazu eine Schaltfläche anlegen, bei „Aktion“ „JavaScript“ wählen und diesen Code eintragen:
var fehlend = [];
for (var i = 0; i < this.numFields; i++) {
var f = this.getField(this.getNthFieldName(i));
if (f && f.required && (f.value === "" || f.value === "Off")) {
fehlend.push(f.name);
}
}
if (fehlend.length > 0) {
app.alert("Bitte füllen Sie noch folgende Pflichtfelder aus:\n" + fehlend.join("\n"));
} else {
app.alert("Alle Pflichtfelder sind ausgefüllt.");
}
„Off“ steht für ein nicht angekreuztes Kontrollkästchen bzw. ein nicht gewähltes Optionsfeld. Die Validierungsaktion eines Feldes läuft dagegen nur, wenn jemand den Inhalt dieses Feldes ändert. Für leer gelassene Felder eignet sie sich deshalb nicht.
Bitte beachten Sie: Skripte führt nur ein PDF-Programm aus, das JavaScript unterstützt und bei dem es eingeschaltet ist, z. B. der Adobe Acrobat Reader. Viele andere Programme, etwa manche Browser oder Apps, ignorieren es.