Unterschriftsfeld mit Pflichtfeldprüfung

Grundsätzliche Themen zur Bedienung, Erstellung von Formularen, Datenbankanbindung und Beispiele ...
Antworten
Franz44
Beiträge: 34
Registriert: 15.12.2016, 15:36

Unterschriftsfeld mit Pflichtfeldprüfung

Beitrag von Franz44 » 17.03.2023, 11:57

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
Zuletzt geändert von Franz44 am 28.03.2023, 14:36, insgesamt 1-mal geändert.

Benutzeravatar
radzmar
Beiträge: 961
Registriert: 26.10.2011, 10:18

Re: Unterschriftsfeld mit Pflichtfeldprüfung

Beitrag von radzmar » 27.03.2023, 22:18

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.");
}	

Franz44
Beiträge: 34
Registriert: 15.12.2016, 15:36

Re: Unterschriftsfeld mit Pflichtfeldprüfung

Beitrag von Franz44 » 28.03.2023, 14:35

Super vielen Dank für den Code. Das funktioniert :)

Gruß Franz

Antworten