Parcourez la base de connaissances, explorez nos ressources et visitez notre Forum communautaire pour des informations plus détaillées
Dernière mise à jour : 24 Jun 2026
Les contraintes, également appelées critères de validation, sont un type de logique de formulaire permettant de restreindre les réponses acceptables à une question en fonction d’une condition prédéfinie. Si la condition de contrainte n’est pas remplie, un message d’erreur personnalisable s’affiche, invitant l’utilisateur du formulaire à saisir une réponse valide.
Pour en savoir plus sur la logique de formulaire dans XLSForm, consultez l'article Introduction à la logique de formulaire dans XLSForm.
Cet article couvre les sujets suivants :
Ajouter des contraintes aux questions dans XLSForm
Combiner plusieurs conditions de contrainte
Personnaliser les messages d’erreur de contrainte
Contraintes avancées dans XLSForm
Note : Cet article porte sur l'ajout de contraintes dans XLSForm. Pour en savoir plus sur l'ajout de contraintes dans l'interface de création de formulaires KoboToolbox (KoboToolbox Formbuilder), consultez l'article Ajouter des critères de validation dans le Formbuilder.
Pour vous exercer à l'ajout de contraintes dans XLSForm, consultez le cours XLSForm Fundamentals de la KoboToolbox Academy.
Les contraintes sont construites à l’aide de références de questions, d”opérateurs de comparaison et de constantes. Les conditions de contrainte doivent être remplies pour valider ou envoyer un formulaire. Dans le cas contraire, un message d’erreur s’affiche et les utilisateurs ne peuvent pas passer à la page suivante ni envoyer le formulaire.
Pour ajouter des contraintes dans XLSForm :
Ajoutez une colonne constraint à l”onglet survey.
Dans la colonne constraint, définissez la condition qui doit être remplie pour que la réponse soit valide.
Utilisez un point . pour référencer la question de la ligne où vous ajoutez une contrainte.
Utilisez un opérateur de comparaison, suivi d’une valeur de référence, pour construire une contrainte simple.
Par exemple, . > 18 restreint une question de type integer pour n’accepter que les valeurs supérieures à 18.
onglet survey
type |
name |
label |
constraint |
|---|---|---|---|
integer |
age |
What is your age? |
. >= 18 |
integer |
household |
How many people live in your household? |
. <= 30 |
integer |
income |
Out of those, how many earn income? |
. <= ${household} |
survey |
La valeur de référence dans une condition de contrainte doit correspondre au type de la question pour laquelle vous ajoutez une contrainte. Les formats de valeurs de référence pour les principaux types de questions sont listés ci-dessous :
Type de question |
Format de la valeur de référence |
Exemple |
|---|---|---|
integer |
Nombre |
|
select_one |
Nom du choix (tel que défini dans l’onglet choices) entre guillemets |
|
select_multiple |
Nom du choix combiné avec la fonction |
|
date |
Date au format |
|
text |
Texte entre guillemets (rarement utilisé pour les contraintes) |
|
Pour en savoir plus sur la construction d'expressions de logique de formulaire dans XLSForm, consultez l'article Introduction à la logique de formulaire dans XLSForm.
Plusieurs conditions de contrainte peuvent être combinées en une seule expression pour déterminer si une réponse est valide. Les conditions peuvent être combinées à l’aide des opérateurs logiques and, or et not :
Utilisez and lorsque toutes les conditions doivent être remplies pour qu’une réponse soit valide.
Par exemple : . > 18 and . < 65
Utilisez or lorsqu’au moins une condition doit être remplie pour qu’une réponse soit valide.
Par exemple : . < 18 or ${student} = “yes”
Utilisez not pour indiquer qu’une condition ou un ensemble de conditions ne doit pas être rempli (par exemple, lorsque deux conditions ne peuvent pas être vraies simultanément pour qu’une réponse soit valide).
Par exemple : not(. < 18 and ${household_head} = “yes”)
onglet survey
type |
name |
label |
hint |
constraint |
|---|---|---|---|---|
integer |
age |
What is your age? |
Must be less than 18 or above 65 to participate |
|
integer |
weight |
How much do you weigh? |
Must be between 30 and 200 kg |
|
survey |
Par défaut, lorsqu’une valeur de réponse dans le formulaire ne remplit pas la condition de contrainte, un message d’erreur « Value not allowed » s’affiche. Il est recommandé de personnaliser ce message pour informer les utilisateurs de la raison pour laquelle la valeur est invalide, leur permettant ainsi de corriger leur saisie.
Pour personnaliser le message d’erreur de contrainte :
Ajoutez une colonne constraint_message à l”onglet survey.
Dans la colonne constraint_message, saisissez le texte que vous souhaitez afficher comme message d’erreur lorsque les conditions de contrainte ne sont pas remplies.
onglet survey
type |
name |
label |
constraint |
constraint_message |
|---|---|---|---|---|
integer |
age |
What is your age? |
. >= 18 |
Must be older than 18. |
Au-delà des contraintes de base, vous pouvez personnaliser les conditions pour garantir la qualité des données et vous adapter à de nombreux scénarios de collecte de données. Pour construire des conditions de contrainte plus avancées dans XLSForm :
Utilisez des parenthèses pour combiner plus de deux conditions
Utilisez des fonctions pour plus de flexibilité
Utilisez des expressions régulières pour restreindre les réponses de type texte
Voici des exemples de critères de validation plus avancés :
Critère |
Description |
|---|---|
|
La réponse doit être comprise entre 17 et 130 ou être égale à 999 (souvent utilisé pour les non-réponses). |
|
Limite la sélection multiple à trois options au maximum. |
|
Si la réponse à |
|
L’option “none” ne peut pas être sélectionnée si une autre réponse dans une question |
|
La date saisie doit être antérieure à la date du jour. |
|
La saisie est limitée à deux chiffres (à l’aide d”expressions régulières). |
|
L’heure saisie doit être égale ou postérieure à 12h00. |
Avez-vous trouvé ce que vous cherchiez ? Les informations étaient-elles claires ? Manquait-il quelque chose ?
Partagez vos commentaires pour nous aider à améliorer cet article !
KoboToolbox est maintenu par Kobo Inc.