I have a simple text field that uses typeahead with results from an array. I would like to limit user input to ONLY be able to type/select results in the array.
If my array looked like this:
['alison','bentley','christopher'];
The user could type 'ali'
, or 'topher'
, but in the end, the typeahead should select whatever is currently highlighted (if the input blurs), or the user selects.
However, the user should not be able to type 'z'
, because it matches nothing in the array. It shouldn't let them type that at all.
Does this already exist, or do I need to create a custom directive? I searched other similar questions, but they weren't quite the same.
I tried using typeahead-editable
, because I thought that was what I needed, but it prevented the typeahead from working entirely. On the bootstrap website, it describes it as "Should it restrict model values to the ones selected from the popup only?"
Am I doing something incorrectly?
Here is a plunker:
If you remove typeahead-editable
, the basic typeahead should work.
By default Typeahead doesn't filter the array, you need to declare it using filter:$viewValue
, e.g.
<input
ng-model="name"
typeahead="address for address in locations | filter:$viewValue | limitTo:5" />
Here is a demo
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With