As an important interface to obtain user input, form plays a role of matching answers to questions.
In the design of a form, it's recommended to:
1. Make sure users know what is required to enter and why.
Use sample language as `label` for ordinary users and professional terms for experts. If sensitive information (for example ID card number, mobile phone number) is required, explain why.
2. Provide rich context to help users complete the form.
Using "proper default value", "structured format", "tooltip" and "reminder" are practical for describing such context.
3. Be error-sensitive and fault-tolerant.
Be error-sensitive means giving feedbacks to users quickly through a variety of validation rules of user input. If the validation starts only after a form is submitted, it would be too late. Be fault-tolerant means it should be allowed to use different kinds of formats as well as syntax. For example, if a user types in some spaces into a phone number input box, the system should delete those spaces automatically instead of telling the user to correct them.
4. Don't ask unnecessary questions.
---
## Content
<imgclass="preview-img"align="right"alt="Example of a form"src="https://os.alipayobjects.com/rmsportal/mLkQbODgVsdGUTe.png">
A form usually consists of 4 parts:
1. Label
2. Input box
3. Validation feedback
4. Action
> Note: `*` indicates that the input is required.
## Interactions
### Gap filling input
<imgclass="preview-img"align="right"alt="Example of gap filling input"src="https://os.alipayobjects.com/rmsportal/SdzCTaevNMvJFBR.png">
Gap filling input usually appears in a descriptive context to help users understand the current situation and provide information correctly.
### Combined input
<imgclass="preview-img"align="right"alt="Example of combined input"src="https://os.alipayobjects.com/rmsportal/waStvhMnuoqqsCE.png">
When two input boxes have strong correlation, they can be combined together so as to save some space.
### Alignment
<imgclass="preview-img"align="right"alt="Example of alignment"src="https://os.alipayobjects.com/rmsportal/cjHTEtXFxUSdHnE.png">
In the design of a form, button groups should be aligned to the left of the input boxes.
### Disabled main button
When there are just a few (less than 3) input boxes in a form, "submit" button or other main buttons should be disabled if a user has not yet filled in all required input boxes. However, when there are too many input boxes (more than 5), do not disable those main buttons.
<br>
<imgclass="preview-img"align="right"alt="main button is disabled when there are not enough characters"src="https://os.alipayobjects.com/rmsportal/VabHKlbouFxSQXz.png">
<imgclass="preview-img"align="right"alt="main button is enabled when there are enough characters"src="https://os.alipayobjects.com/rmsportal/usdFxJmWDawqUuq.png">
When there are just a few input boxes, users can see feedbacks once they type in something and thus the rule is easy to understand.
<br>
<imgclass="preview-img"align="right"alt="Don't use disabled main button"src="https://os.alipayobjects.com/rmsportal/GwZhvOuXmwqUIUW.png">
When there are many input boxes (especially when required input boxes are altogether with optional ones), the logic of feedbacks can be very complicated. Thus, disabling main buttons may cause confusion.
### Structured format
<imgclass="preview-img"align="right"alt="Example of structured format"src="https://os.alipayobjects.com/rmsportal/SQgGfreRAqPZPsm.png">
The structured format can be used if users are familiar with the input content and the system doesn't accept any deviation from the desired format.
### Tooltip & reminder
<imgclass="preview-img inline"align="right"alt="Example of tooltip"description="when an input box is focused, the tooltip will appear until the input box loses focus again"src="https://os.alipayobjects.com/rmsportal/cTlmdEprGSzMZfs.png">
<imgclass="preview-img inline"align="right"alt="Example of reminder"description="when an input box is focused, the reminder will appear until a user types in at least one character"src="https://os.alipayobjects.com/rmsportal/QPhvLWfMbLTvjRw.png">
Use tooltip if a brief input label may cause confusion while you still want to keep the label text to be short.
Use reminder if you want users to pay attention to the format or purpose of an input box. A reminder will disappear once there is something typed in the input box, so it should be used only when users are familiar with the content.
### Password input box
<imgclass="preview-img"align="right"alt="Example of password input box"src="https://os.alipayobjects.com/rmsportal/wKpOgeyyoOUeCrk.png">
Password input box provides real time feedbacks on password strength and validity. It's quite applicable to a registration page.
### Validation
<imgclass="preview-img inline"align="right"description="Validation in real time"src="https://os.alipayobjects.com/rmsportal/urCdIJFuNYCenqH.png">
<imgclass="preview-img inline"align="right"description="Validation after losing focus"src="https://os.alipayobjects.com/rmsportal/KkcSBkbTJirIxCw.png">
<imgclass="preview-img"align="right"description='When a "submit" button is clicked, the system will deal with user inputs and display feedbacks (the number of errors and the types of errors) on the page.'src="https://zos.alipayobjects.com/rmsportal/xTtVSREbASRMstTggVGD.png">
If the maximum length of an input content is known, it's recommended to define the input width according to the maximum length.
<br>
### Alignment
There are both advantages and disadvantages for any kinds of alignment. Thus, you need to have a clear mind about your purposes (if you want to speed up or slow down a user) and the limits (screen width restrictions, problems of localization, etc.) before choosing one of those alignments.