[SCRIPTSUCHE] Überprüfung von Pflichtfeldern (PDF-Formular) vorm Speichern/Drucken

creative_mind

New member
Guten Tag liebe jswelt-Community!

Folgendes Problem lässt mir im Moment keine Ruhe:
Ich habe für meine Firma mit InDesign und Adobe Acrobat DC ein PDF-Formular erstellt, das von den verschiedenen Abteilungen ausgefüllt wird während der Auftragsbearbeitung. Das Formular besitzt 12 Pflichtfelder, die ausgefüllt sein müssen, damit die Auftragsbearbeitung beginnen kann. Nun ist es leider so, dass das Formular gespeichert und gedruckt werden kann, obwohl keines der Pflichtfelder ausgefüllt ist – das ist genau das, was ich durch die Pflichtfelder verhindern wollte.

Über Google habe ich erfahren, dass InDesign und Acrobat diesbezüglich keine Einstellung besitzen. Die einzige Umsetzung bietet ein JavaScript, das bei den Dokumentaktionen "Speichert Dokument" und "Druckt Dokument" eingefügt werden kann, muss aber selbst geschrieben werden. Das Script soll also überprüfen, ob die gekennzeichneten Pflichtfelder ausgefüllt sind sobald der Nutzer das Dokument über Datei > Speichern/Drucken oder über die jeweiligen Shortcuts speichern/drucken will. Wenn nicht soll eine Fehlermeldung erscheinen, die den Nutzer darauf hinweist, dass er noch Felder auszufüllen hat.

Mein Problem ist jetzt, dass ich mich mit JavaScript mal so gar nicht auskenne. Ich erkenne zwar einige Phrasen und weiß dann, was sie bewirken, aber das war es schon.
Meine Idee für das Script wäre aber gewesen, dass man die Pflichtfelder (haben ja alle einen konkreten Namen) über diese if-Befehle überprüfen lässt, ob sie nun ausgefüllt sind und am Ende dann mit app.alert eine Fehlermeldung einbaut, wenn sie leer sind.
Habe dazu auch einen Code im Internet gefunden, der das mal veranschaulicht. Hoffe es geht so in etwa auch bei der PDF?

Code:
function chkFormular () {
if (document.Formular.User.value == "") {
alert("Bitte Ihren Namen eingeben!");
document.Formular.User.focus();
return false;
}
if (document.Formular.Ort.value == "") {
alert("Bitte Ihren Wohnort eingeben!");
document.Formular.Ort.focus();
return false;
}
}


Ich hoffe, ich habe mein Problem verständlich erklärt und dass man mir hier wenigstens ansatzweise helfen kann. Bin schon am Verzweifeln :/

Grüßli,
c_m
 
Zuletzt bearbeitet:
Guten Morgen!

Ich wollte mal eine kurze Rückmeldung geben. Habe gestern mit einem Kollegen noch mal daran gewerkelt, zwar vergebens, aber wir haben dann dieses Skript gefunden:

Code:
allgood(); 
function allgood() 
{ 
 var mel; 
 mel="" 
 for (var i=0;i<this.numFields;i++) 
 { 
  var fName=this.getNthFieldName(i); 
  var f=this.getField(fName); 
 if ((f.type != "button") && f.required && (f.value.length<1))
  { 
   mel=mel + fName + ", "; 
  } 
 } 
if (mel==""){ 
app.doc.save(); 
} 
else 
{app.alert("Bitte vor dem Speichern alle erforderlichen Felder ausfüllen!"); 
} 
}

Statt fName haben wir dann den Namen eines der Pflichtfelder eingetragen, zB fKunde und dann kam beim Testen tatsächlich eine Fehlermeldung. Habe das Ganze noch analog zum Drucken gemacht mit app.doc.print(); und dem Abändern der Fehlermeldung, hat auch funktioniert.

Problem an der Sache ist aber, wie wir festgestellt haben, dass das Ding trotzdem speichert und druckt, d.h. wir haben zwar die Fehlermeldung, die Aktion wird aber leider trotzdem ausgeführt – würde das aber gerne auch noch unterbinden :/
 
Ergänze im alert() doch mal die Ausgabe der Variable mel um zu schauen, was da drin ist, wenn die Meldung kommt obwohl sie nicht kommen sollte.
 
Ergänze im alert() doch mal die Ausgabe der Variable mel um zu schauen, was da drin ist, wenn die Meldung kommt obwohl sie nicht kommen sollte.
das ist nicht sein problem, sein problem ist, die meldung kommt, aber es wird trotzdem gespeichert.

ich hab keine ahnung, wie das in pdf läuft. in welchem kontext läuft allgood() denn? ist das so eine art onBeforeSave, also eine funktion die vor dem speichern gerufen wird? dann musst du vermutlich true zurückliefern, wenn gespeichert werden soll und false wenn nicht
 
Zurück
Oben