A combo box is an auto-complete text box that is also a dropdown (i.e., you can choose from a list if you prefer).
“Best” means combination of: stable, look/feel, API / customizability, maturity.
I like the Yahoo UI Autocomplete widget. It does not provide the dropdown natively, but a dropdown button can be added with a few lines of code.
ExtJS has a very powerful combo box that provides dropdown, auto-complete, and filtering of choices. You can also enable pagination,
There are a number of extensions that provide additional capabilities, such as a Facebook style multi-select, or multi-select checkboxes.
This is of course a subjective question, but I have good experiences on with Script.aculo.us’s autocompleter (API docs here). It’s been around for quite a while, browser support is excellent, you can customize look and feel, etc.
Note that Script.aculo.us depends on Prototype.
Surely autocomplete and combo boxes serve two similar, but different purposes:
- Autocomplete; select one from a very long list (i.e. too long to scroll through)
- ComboBox; select one from a relatively short list (i.e. one that is easy to scroll through
How many items do you have in your list?