Dynamic search suggest
This code sample will allow you to provide suggestions while the user is typing. Ideal for search fields.
HTML <input type="text" placeholder="Begin typing a tag..." onkeyup="searchSuggest(this)" /> CSS #suggestHolder { position: absolute; background-color: white; border-bottom-left-radius: 10px; border-bottom-right-radius: 10px; -webkit-transition: all .5s; overflow: hidden; } #suggestHolder li { border-left: 1px solid #ccc; border-bottom: 1px solid #ccc; border-right: 1px solid #ccc; padding: 10px 20px; overflow: hidden !important; } #suggestHolder li:first-child { border-top: none; } JavaScript defaultSuggestTerms = ['john','jack','james','jason']; function searchSuggest(el) { var txt=el.value; if (txt.length < 1) { suggestHolder.innerHTML = ''; return; } if (event.which === 13) { suggestHolder.innerHTML = ''; return; } txt = txt.toLowerCase(); var searchSuggestions = ''; var suggestCnt = 0; for (var p = 0; p < defaultSuggestTerms.length; p++) { if (defaultSuggestTerms[p].toLowerCase().match(txt)) { suggestCnt++; searchSuggestions += '<li onclick="">' + defaultSuggestTerms[p] + '</li>'; if (suggestCnt > 5) { break; } } } if (typeof suggestHolder === "undefined"){ suggestHolder=document.createElement("UL"); suggestHolder.id="suggestHolder"; document.body.appendChild(suggestHolder); suggestHolder.style.top=(el.offsetTop+el.offsetHeight)+"px"; suggestHolder.style.left=el.offsetLeft+"px"; suggestHolder.style.width=el.offsetWidth+"px"; } suggestHolder.innerHTML = searchSuggestions; }
Directions:
- add your list of possible suggestions to defaultSuggestTerms.
- by default number of suggestions is limited to 5 but feel free to change the value.
Note:
This snippet focuses on iOS development. Make sure to verify/adapt any vendor prefixes. Back to main listing.
Published: Mon, Jan 11 2016 @ 12:30:16
Back to Blog