-
-
Save jharding/9458744 to your computer and use it in GitHub Desktop.
| <div id="the-basics"> | |
| <input class="typeahead" type="text" placeholder="States of USA"> | |
| </div> |
| var substringMatcher = function(strs) { | |
| return function findMatches(q, cb) { | |
| var matches, substringRegex; | |
| // an array that will be populated with substring matches | |
| matches = []; | |
| // regex used to determine if a string contains the substring `q` | |
| substrRegex = new RegExp(q, 'i'); | |
| // iterate through the pool of strings and for any string that | |
| // contains the substring `q`, add it to the `matches` array | |
| $.each(strs, function(i, str) { | |
| if (substrRegex.test(str)) { | |
| matches.push(str); | |
| } | |
| }); | |
| cb(matches); | |
| }; | |
| }; | |
| var states = ['Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California', | |
| 'Colorado', 'Connecticut', 'Delaware', 'Florida', 'Georgia', 'Hawaii', | |
| 'Idaho', 'Illinois', 'Indiana', 'Iowa', 'Kansas', 'Kentucky', 'Louisiana', | |
| 'Maine', 'Maryland', 'Massachusetts', 'Michigan', 'Minnesota', | |
| 'Mississippi', 'Missouri', 'Montana', 'Nebraska', 'Nevada', 'New Hampshire', | |
| 'New Jersey', 'New Mexico', 'New York', 'North Carolina', 'North Dakota', | |
| 'Ohio', 'Oklahoma', 'Oregon', 'Pennsylvania', 'Rhode Island', | |
| 'South Carolina', 'South Dakota', 'Tennessee', 'Texas', 'Utah', 'Vermont', | |
| 'Virginia', 'Washington', 'West Virginia', 'Wisconsin', 'Wyoming' | |
| ]; | |
| $('#the-basics .typeahead').typeahead({ | |
| hint: true, | |
| highlight: true, | |
| minLength: 1 | |
| }, | |
| { | |
| name: 'states', | |
| source: substringMatcher(states) | |
| }); |
Hi,
This example currently displays the result as "Undefined", as the value being pushed is a string, but it seems an object is expected in the format of [{value: "string1"}, {value: "string2"}, {value: "string3"}] according to this post on Stack Overflow. I have amended this in my fork, by changing the following on line 15 of the-basics.js:
matches.push(str);
to
matches.push({value: str});
Please feel free to merge this @jharding.
Thank you phily245! This small change resolve issue with "undefined" suggestions.
It's little strange that author publish as a first example code which not works... ;)
N4Igzg9grgTgxgUxALhAgHgBwjALgAgBMEAzAQygBsCSoA7OXASwjvwFkBPAQU0wAoAlPmAAdNvhgJcsNgB5CTAG4A+ABIJKlCPgDqOSoTkB6RaoDc4gL7iQAGhBxWJJgHMUIJgFtsefLk5MBBF8AAVKKFcmOgB5TGZWMHwrfBIYCC98AHIAIzIczQBaTAioukKpMkZCpx8mSgQYUyYwXCzLOnF+MQljY1rMerIEunYIYmR8URAyLWnrfDBhlpcEJPDI6LiRsEFze3AACwgAdwBJOlxGulmwFHJKMAQrIA
Hi all,
Example still contains some mistake with
substrRegexvariable.In this function:
substringRegexvariable;