Why use Form widet?

Why use Form widet?


I have a question about the Form widget.
In our application, we have developed a screen with a Form widget and another one (also for creating/editing a single record) without it.
The screen without Form widget was built that way because the Form widget has a look & feel that doesn't fit that of the overall application.
The screen with Form widget was built that way because the developer just followed the Outsystems course and learned to do it that way ;-)

We want to choose one way to build these kinds of screens.
For now we have chosen not to use the Form widget, because the form widget has this look&feel that we don't want:
* The fields in a form don't look editable until you click them 
* The font size and color of input items inside a form don't match that of input items outside a form
* The mandatory input items inside a form show an aserisk, an edit and an undo icon which items outside a form don't
* The form valid property doesn't seem to work in all cases: we set this value in an onChange action on an input but in the Save action the form was valid again and the data was saved. 
* We don't have a lot of scenarios where you could quickly drag an entity to a form

I am wondering, are we missing a reason why we should use the Form widget?

Thanks in advance & kind regards.

Hi Monique, 

Take a look at this post. It explains the difference between Form and Edit Record widgets, so you can understand a little more about how it works.

Hope it helps!
Hi Monique,

The main purpose of the form widget is to aggregate all validations and speed up drag n' drop. The Form.Valid property shouldn't be set, it will be automatically set based on all child input widgets valid property. CSS can be customized.

This being said, if you don't have scenarios where drag n drop can be useful and you're happy with doing validation for all inputs, then you can do forms without it.

Hello André & Tiago,

Thanks for the answers.
(@Tiago: I meant we set the FormValid by disabling one of its input fields, not directly)