2010-11-23 6 views
0

Ich habe mehrere Felder in einem Orbeon-Xform, die von einem Datenbankdienst und Aktion gefüllt werden. Für diese Felder gibt es Einschränkungen (Beispielfeld muss gleich null sein). Wenn die Aktion durch die Aktivierung einer Schaltfläche ausgelöst wird, werden Daten in diesen Feldern vom Datenbankdienst aufgefüllt.Orbeon xforms: Gibt es eine Möglichkeit, die Einschränkungsprüfung von Feldern zu erzwingen, die von einer Aktion ausgefüllt werden?

Ich bekomme die Einschränkung Fehlermeldung unten, aber das Feld wird nicht markiert, nachdem die Aktion ausgelöst wird. Wenn ich das Feld betrete und verlasse, wird das Feld markiert.

Ich kann verstehen, dass dieses Verhalten sinnvoll ist, wenn Sie die Verwendung erwarten, um jedes Feld in dem Formular auszufüllen. Einige Felder können jedoch automatisch ausgefüllt oder berechnet werden.

Gibt es eine Möglichkeit, die Validierung der Einschränkung zu erzwingen, ohne dass der Benutzer das Feld eingeben muss? Eigentlich muss der Benutzer das Feld eingeben und ein anderes Feld eingeben, damit diese Hervorhebung erscheint.

Ich habe versucht, den Wert eines anderen Feldes in der Einschränkung zu enthalten. Dies funktioniert für Read-Only- und Visibility-Validierungen. Wenn sich der Wert des anderen Feldes ändert, werden diese Validierungen erneut ausgewertet. Die Einschränkung scheint jedoch nicht neu bewertet zu werden oder zumindest die Methode, die die Feldmarkierung generiert, wird nicht neu bewertet.

Antwort

1

(Ich gehe davon aus, dass dies zu einem Formular verwandt Sie mit Form Builder erstellt.)

Kontrollen werden erneut überprüft, wenn ein Dienst aufgerufen wird, aber die Fehleranzeige, die beide neben dem Feld und in der Fehlerübersicht, wird nur angezeigt, nachdem Benutzer das Feld besucht haben. Sie können programmatically tell the error summary to consider all the controls visited senden, indem Sie eine fr-visit-all senden, eine Aktualisierung durchführen und eine fr-update senden. (Lassen Sie es mich wissen, wenn Sie Probleme haben, dies im Form Builder zu verwenden, und ich kann dieser Antwort weitere Informationen hinzufügen.)