OutSystems Platform enables you to validate the input of the end-user. Input validations can be automatic, or custom.

Built-in Validations

The OutSystems Platform offers automatic input validation of the value typed by the end-user, in Input widgets and Input Password widgets.

Valid and Invalid typed values

The inputs are valid when the following conditions for the widget properties are met:


As an example, if the input is bound to a variable with Date data type, the user must insert a date, or the input is invalid.

Note that the ‘Type’ property of the input doesn't affect the input validation, but modern browsers might display the input differently or automatically validate its content. As an example, if an input of type text is bound to a variable of type integer, the OutSystems Platform validates if the use has submitted a valid integer.

Validation Process

When the user presses a Button or Link to submit inputs, three different kinds of automatic validations can occur:

To specify the validation behavior, change the 'Validation' property of Buttons or Links.

Validation does not apply to links or buttons with the 'Method' property set to Navigate.

During the validation process, inputs are evaluated to check if value typed by the end-user complies with the data type of the variable to which the widget is bound. Runtime property of the widgets is affected:

The 'ValidationMessage' runtime property is used during the validation of the typed values to hold the message to be displayed to the end-user:

Custom Validations

OutSystems Platform provides the capability to create custom input validation of the value typed by the end-user. To create a custom validation you must give a name to the input element in its properties, and in a Screen Action access the runtime properties of the element. You can apply custom validations to the widgets:


As an example, you can give a name to an Input Password widget, and then in a Screen Action validate its content and if it is not valid set the runtime property 'Valid' to False and in the runtime property 'ValidationMessage' define the message to be displayed to the end-user.

Grouping Inputs for Validation

When a Button or Link is pressed, all inputs belonging to the same Edit Record than the button or link (defined in the 'Validation Parent' property) are validated: widgets belonging to another Edit Record or which do not specify their parent Edit Record property, are not automatically validated.

In the validation process, if any input belonging to the Edit Record is invalid, the 'Valid' runtime property of that Edit Record is automatically set to False.

See Also

About Widgets