• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Schaltfläche in einem PDF Formular

jonnybks

New member
Hallo Zusammen,
ich habe hinter einer Schaltfläche in einem PDF Formular folgenden JavaScript hinterlegt:

Code:
if (app.viewerType == "Reader") {
app.alert("Dieser Reader kann leider nicht speichern!");
} else
if (this.getField("Datum_SB").valueAsString == ""){
app.alert("Sie haben noch kein Datum eingetragen! Versenden daher nicht möglich!");
} else
if (this.getField("Auftragsart").valueAsString == ""){
app.alert("Sie haben noch keine Auftragsart gewählt! Versenden daher nicht möglich!");
} else
if (this.getField("A_Projekt").valueAsString == ""){
app.alert("Sie haben noch keine Projektnummer eingetragen! Versenden daher nicht möglich!");
} else



this.mailDoc({
	cTo: this.getField("cabMailCto").value,
});

Wenn die am Anfang abgefragten Felder nicht mehr leer sind soll das Dokument per Mail verschickt werden. Leider funktioniert das nicht ganz, das Dokument wird immer verschickt, egal ob die Fomularfelder ausgefüllt sind. Was mache ich da falsch?
Bitte um Hilfe
gruss
Bernd
 
Muss ganz unten hinter else nicht auch eine geschweifte Klammer hin, wo das Mailkommando rein kommt?
 
Eigentlich sollte da keine Semikoloninsertion statt finden und deswegen sollte das eigentlich passen, ABER ich gehe mal davon aus, dass in den leeren Zeilen in Wirklichkeit etwas drin steht. Dann wird natürlich nur die erste Anweisung in Abhängigkeit vom else ausgeführt und alle anderen immer.

Ich hab' mir mal erlaubt, den Code aufzuhübschen, so dass er besser lesbar ist und die potentielle Fehlerquelle entfernt:
Code:
if (app.viewerType === "Reader"){
	app.alert("Dieser Reader kann leider nicht speichern!");
}
else if (this.getField("Datum_SB").valueAsString === ""){
	app.alert("Sie haben noch kein Datum eingetragen! Versenden daher nicht möglich!");
}
else if (this.getField("Auftragsart").valueAsString === ""){
	app.alert("Sie haben noch keine Auftragsart gewählt! Versenden daher nicht möglich!");
}
else if (this.getField("A_Projekt").valueAsString === ""){
	app.alert("Sie haben noch keine Projektnummer eingetragen! Versenden daher nicht möglich!");
}
else {
	// hier die anderen Zeilen wieder einfügen...
	this.mailDoc({
		cTo: this.getField("cabMailCto").value
	});
}

PS: Kommen denn die Benachrichtigungen, dass noch etwas fehlt?
 
Hab es jetzt so hinbekommen:
HTML:
var druck; 
 druck=""
 for (var i=0;i<this.numFields;i++) 
 { 
  var feldName=this.getNthFieldName(i); 
  var feld=this.getField(feldName); 
    if ((feld.type != "button") && feld.required && (feld.value==""||feld.value=="Off")) 
{ 
   druck=druck + feldName + "\n";
  } 
 } 
if (druck==""){
 
Zuletzt bearbeitet von einem Moderator:
Kleine Randbemerkungen: dein Code ist immer noch schlecht lesbar. Du solltest Einrückungen einheitlich machen.
Außerdem kann "==" und "!=" in JS unerwartete Ergebnisse liefern (z.B. hat es keine Transitivität:
Code:
alert("" == 0);
alert(0 == "0");
alert("" == "0");
) dewegen sollte man immer "===" bzw. "!==" verwenden.
 
Zurück
Oben