Form.io incorporates the amazing Choices.js library to be used as a Select control,
but also has the ability to render raw HTML select dropdowns. Below are some examples of different configurations for
Select dropdowns.
Code
Example
Single Select
JSON Values
Multi-Select
External Source
Infinite Scroll
When using the Resource or URL type of select fields, it will automatically paginate the URL as they user is scrolling down the select list. this is commonly referred to as Infinite Scroll. When using the Resource component, this will automatically work, but for URL type of selects, you can add tokens {{ limit }}, {{ skip }}, or {{ page }} to pass to your URL.
Lazy Loading
Using the lazyLoad parameter, you can tell a remote select dropdown to only load the choices
when someone clicks on it. This is great for forms that have many select dropdowns that refer to external url's
where you do not wish to load all of the select dropdowns upfront.
Lazy Loading Default
When using Lazy Loading, you can also provide a Search Query Name to your form. Whenever a value is provided to the component, it will fire off an API call with the Search Query Name provided (which should only return a single record). This will allow you to populate the correct label of the item that is selected without loading all the items. Then when they click on the control, all options are loaded dynamically.
HTML5 Widget
Using the widget parameter, you can use the regular HTML5 select widget over the Choices.js widget.