JavaScript in PDF soll auf Felder prüfen

Benutzeravatar
polysom
Beiträge: 487
Registriert: So 6. Feb 2022, 21:24
Wohnort: Da wo Kekse 🍪 sind
Kontaktdaten:

JavaScript in PDF soll auf Felder prüfen

#1

Beitrag von polysom »

Ich habe ein PDF erstellt das im Signaturfeld prüft, ob alle benötigten Felder ausgefüllt wurden und eine Warnung ausgibt wenn etwas vergessen wurde. Es soll alle Felder auflisten die fehlen.

Code: Alles auswählen

// Checks if all required fields are filled out
name = getField("Text1");
date = getField("Text4");
uform = getField("RadioButton1");
c9 = getField("CheckBox9");
c10 = getField("CheckBox10");
c11 = getField("CheckBox11");
c12 = getField("CheckBox12");
c13 = getField("CheckBox13");
c14 = getField("CheckBox14");
c15 = getField("CheckBox15");
c16 = getField("CheckBox16");
c17 = getField("CheckBox17");
c18 = getField("CheckBox18");
c19 = getField("CheckBox19");
c20 = getField("CheckBox20");

if (name.value.length == 0)
    {
    w1 = "name, "
    }
if (date.value.length == 0)
    {
    w2 = "date, "
    }
if (uform.value == 'Off')
    {
    w3 = "training type, "
    }
if (c9.value == 'Off' && c10.value == 'Off' && c11.value == 'Off' && c12.value == 'Off' && c13.value == 'Off' && c14.value == 'Off' && c15.value == 'Off' && c16.value == 'Off' && c17.value == 'Off' && c18.value == 'Off' && c19.value == 'Off' && c20.value == 'Off')
    {
    w4 = "topic."
    }
if (name.value.length == 0 || date.value.length == 0 || uform.value == 'Off' || c9.value == 'Off' && c10.value == 'Off' && c11.value == 'Off' && c12.value == 'Off' && c13.value == 'Off' && c14.value == 'Off' && c15.value == 'Off' && c16.value == 'Off' && c17.value == 'Off' && c18.value == 'Off' && c19.value == 'Off' && c20.value == 'Off')
   {
    app.alert("Please fill out the following required fields: " + w1 + w2 + w3 + w4, 1, 0, "Missing required fields!")
    }
Es kommt auch eine Warnung falls ein Feld fehlt, aber es gibt immer alle Felder aus:
Please fill out the following required fields: name, date, training type, topic.
Es sollte aber nur die auflisten, die fehlen, nicht alle. Wo liegt denn mein Fehler?
Benutzeravatar
Atarimaster
Beiträge: 3228
Registriert: So 6. Feb 2022, 22:09
Wohnort: Ruhrgebiet

#2

Beitrag von Atarimaster »

Ich weiß jetzt nicht, wie JS in PDF funktioniert, aber könnte es sein, dass bspw. das name-Feld erstmal wirklich leer ist (wenn der Check zum erstmal durchläuft) und deshalb die Variable w1 auf "name, " gesetzt wird – und dieser Wert dann erhalten bleibt?

Oder anders gefragt – was passiert, wenn du schreibst:

Code: Alles auswählen

if (name.value.length == 0)
{
    w1 = "name, "
}
else
{
    w1 = null;
}
Ich habe keine Ahnung, aber davon jede Menge.
Benutzeravatar
polysom
Beiträge: 487
Registriert: So 6. Feb 2022, 21:24
Wohnort: Da wo Kekse 🍪 sind
Kontaktdaten:

#3

Beitrag von polysom »

Ich hatte das vorher so gehabt, dass z.b. statt "w1 = "name, "" eine Meldung gekommen ist. So funktioniert es, dass keine Meldung mehr kommt wenn das Feld gefüllt ist. Es ist nur nervig, all die Meldungen wegzuklicken.
Ich versuche deinen Vorschlag morgen mal.
Benutzeravatar
polysom
Beiträge: 487
Registriert: So 6. Feb 2022, 21:24
Wohnort: Da wo Kekse 🍪 sind
Kontaktdaten:

#4

Beitrag von polysom »

Ich habs heute mal versucht. Deine Idee gab mir dann als Ausgabe:
Please fill out the following required fields: nulldate, training type, topic.
Also habe ich alles abgeändert in:

Code: Alles auswählen

if (name.value.length == 0)
{
    w1 = "name, "
}
else
{
    w1 = "";
}
Und das funktioniert jetzt wie gewünscht. Danke für den Tipp!
Antworten