Overview of creating dynamic input fields
A question JSON looks like this:
{
"id": "first_name",
"type": "InputType.Text",
"placeholder": "Enter your first name",
"label": "First Name",
"icon": "Icons.text_fields",
"editOrder": 1,
"viewOrder": 1,
"required": true,
"searchable": "None",
"isMultiSelect": false,
"isRangeSelect": false,
"isSearchable": false
}
For complex fields and having more control over input fields, you can define styles, source display options from a static file or from an API.
InputType.Text
A simple text field
InputType.Age
Displays 3 different dropdowns for easily selecting Year, Month, and Date
InputType.Radio
Nicely displays radio buttons
InputType.Dropdown
Displays a dropdown
InputType.Date
Displays a date input control
InputType.Guardian
This is an example of a custom input field. The requirement is either the Guardian's email should be there, or the user must select the checkbox saying they don't have a guardian.
InputType.Tags
Nicely displays tags, easily set to select one or multiple
InputType.List
Displays a list. You can set which field should show on UI and which field should be saved in the database.
"options": [
{"name": "Yes", "value": 1},
{"name": "No", "value": 2},
{"name": "Maybe", "value": 3}
]
Here the display value should be name
, and the value should be saved in the database.
For a field like showing a countries list, you can configure it to show flag + country name on UI and save the country code in the database.
InputType.ListSearchable
A list that will display a search field allowing users to search items in the list
InputType.ListMultiselect
User can select multiple options
InputType.ListMultiselectSearchable
Multi-select + searchable
InputType.NumberIncrementable
Incrementable numbers field
InputType.GridMultiSelect
Displays a grid, and the user can select multiple items
InputType.Timeline
Displays data in a timeline view
InputType.Location
Displays an input field, but when the user types, it displays options from Google API and saves longitude and latitude along with the location name.
InputType.Document
Allows users to upload documents. You can easily configure which document types are allowed for uploading, what should be the max size per document, min/max number of documents, etc.