Seite 1 von 1

Unterschriftsfeld mit Pflichtfeldprüfung

Verfasst: 17.03.2023, 11:57
von Franz44
Hallo zusammen,

in meinem Beispielsformular habe ich eine Pflichtfeldprüfung hinterlegt. Diese funktioniert, außer beim Unterschriftsfeld nicht. Wenn ich das Formular beim Feld "Unterschrift" digital unterschrieben habe, kommt bei der Pflichtfeldprüfung - bei Klick auf die E-Mail versenden Schaltfläche trotzdem die Meldung das dieses Feld leer ist bzw. nicht unterschrieben ist.
Hat jemand eine Idee, wie ich diese Pflichtfeldprüfung auch mit dem Unterschriftsfeld hinbekomme (s. Anhang / Test_Pflichtfeld_Unterschrift) ?

Danke und Gruß
Franz

Re: Unterschriftsfeld mit Pflichtfeldprüfung

Verfasst: 27.03.2023, 22:18
von radzmar
Unterschriftsfelder werden anders überprüft, da Signaturen nicht bloße Textinformationen sind. Hier mal ein Beispiel, wie das aussehen kann.
Man muss dafür zwingen die Methode getField() benutzen und immer einen vollständigen SOM-Ausdruck beginnend ab dem Wurzelelement des Formulars mitgeben, damit diese das Feld auch findet.

Code: Alles auswählen

// Signaturstatus ermitteln. 
var oState = event.target.getField("Testformular[0].Formular[0].Unterschrift[0]").signatureValidate(); 
// Wenn Signaturfeld unterschrieben ist.
if (oState > 2) {

var Sammelmeldung = "" ;
	for (var i = 0; i < xfa.host.numPages; i++){
		var oFields = xfa.layout.pageContent(i, "field") ; 
			for (var j = 0; j < oFields.length; j++) {
			var oItem = oFields.item(j) ;
			if(oItem.validate.nullTest == "error") { 
				Sammelmeldung += "- " + (oItem.assist.toolTip.value) + "\n" ;			
			}	
		}
	}
	
	if (Sammelmeldung == "") {
		event.target.mailDoc({
			bUI: false,
			cTo: "mail@domain.org",
			cSubject: "test" ,
			cMsg: "Mit freundlichen Grüßen"  
		});
	} else {
		app.runtimeHighlight = true ;
		xfa.host.messageBox("Folgende Felder wurden nicht ausgefüllt.\n\n" + Sammelmeldung.replace(/_/g,"-") + "\nBitte füllen Sie diese Felder vor Versand der E-Mail vollständig aus.", "Formular nicht versandfertig", 3);
	}
} else {
	xfa.host.messageBox("Bitte unterschreiben Sie zuerst.");
}	

Re: Unterschriftsfeld mit Pflichtfeldprüfung

Verfasst: 28.03.2023, 14:35
von Franz44
Super vielen Dank für den Code. Das funktioniert :)

Gruß Franz