Seite 1 von 1

JavaScript in PDF soll auf Felder prüfen

Verfasst: So 5. Mär 2023, 08:29
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?

Re: JavaScript in PDF soll auf Felder prüfen

Verfasst: So 5. Mär 2023, 14:25
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;
}

Re: JavaScript in PDF soll auf Felder prüfen

Verfasst: So 5. Mär 2023, 16:07
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.

Re: JavaScript in PDF soll auf Felder prüfen

Verfasst: Mo 6. Mär 2023, 20:20
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!