2010-11-23 31 views
0

J'ai plusieurs champs sur un xform Orbeon qui sont remplis par un service et une action de base de données. Il y a des contraintes sur ces champs (le champ exemple doit être égal à zéro). Lorsque l'action est déclenchée par l'activation d'un bouton, les données sont renseignées dans ces champs à partir du service de base de données.Orbeon xforms: Existe-t-il un moyen de forcer la validation des contraintes des champs remplis par une action?

Je reçois le message d'erreur de contrainte en bas, mais le champ ne se met pas en surbrillance après le déclenchement de l'action. Si j'entre et quitte le champ, le champ est surligné.

Je peux comprendre que ce comportement est logique lorsque vous attendez l'utilisation pour remplir tous les champs du formulaire. Mais certains champs peuvent être automatiquement remplis ou calculés.

Existe-t-il un moyen de forcer la validation de la contrainte sans que l'utilisateur n'entre dans le champ? En fait, ce que l'utilisateur doit faire est d'entrer dans le champ, puis d'entrer dans un autre champ pour faire apparaître cette surbrillance.

J'ai essayé d'inclure la valeur d'un autre champ dans la contrainte. Cela fonctionne pour les validations en lecture seule et visibilité. Lorsque la valeur de l'autre champ change, ces validations sont réévaluées. Mais la contrainte ne semble pas être réévaluée ou au moins la méthode qui génère la surbrillance du champ n'est pas réévaluée.

Répondre

1

(je suppose que cela est lié à une forme que vous avez créé avec Form Builder.)

Les contrôles sont revalidation lorsqu'un service est appelé, mais l'indicateur d'erreur, à la fois à côté du terrain et dans le résumé d'erreur, ne s'affiche que lorsque les utilisateurs ont visité le champ. Vous pouvez programmatically tell the error summary to consider all the controls visited en envoyant un fr-visit-all, en effectuant une actualisation et en envoyant un fr-update. (Faites-moi savoir si vous rencontrez des problèmes lors de l'utilisation de Form Builder, et je peux ajouter plus d'informations à ce sujet à cette réponse.)