Autocomplete
Definition
Autocomplete, also known as type ahead and predictive text, offers suggested text to complete a word or phrase a user is typing based on words the user has previously typed.
Usage and Specifications
Used appropriately, autocomplete is a handy feature for users. It has the potential to increase completion rates of forms and surveys by eliminating repetitive data entry. Use autocomplete in forms, surveys, and other text entry fields. Because it is possible to enable autocomplete field-by-field, we recommend user testing to confirm which default options will work best for your users.
<style type="text/css">
.twitter-typeahead {
width: 100%;
}
input.typeahead {
box-sizing: border-box;
box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.16), 0 0 0 1px rgba(0, 0, 0, 0.08) !important;
border-radius: 2px;
background: #fff;
border: 1px solid #eee;
font-size: 20px;
font-weight: 400;
padding: 10px 60px 10px 15px;
width: 100%;
}
.tt-hint {
color: #CCC
}
.tt-menu {
border: 1px solid #ccc;
clear: both;
margin-top: 15px;
position: static !important;
width: 100%
}
.tt-suggestion {
color: #2c6bac;
cursor: pointer;
padding: 15px
}
.tt-suggestion a {
display: block;
text-decoration: none
}
.tt-suggestion .tt-highlight {
color: #2c6bac
}
.tt-suggestion:hover,
.tt-suggestion:focus,
.tt-suggestion.tt-cursor {
background: #0080cc;
color: #FFF
}
.tt-suggestion:hover a,
.tt-suggestion:hover .tt-highlight,
.tt-suggestion:focus a,
.tt-suggestion:focus .tt-highlight,
.tt-suggestion.tt-cursor a,
.tt-suggestion.tt-cursor .tt-highlight {
color: #FFF
}
.tt-suggestion .ss-icon {
float: right
}
.tt-dataset:empty {
display: none;
border: 0
}
</style>
<form>
<input class="typeahead" type="text" placeholder="Country">
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/typeahead.js/0.11.1/typeahead.bundle.min.js" integrity="sha512-qOBWNAMfkz+vXXgbh0Wz7qYSLZp6c14R0bZeVX2TdQxWpuKr6yHjBIM69fcF8Ve4GUX6B6AKRQJqiiAmwvmUmQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script type="text/javascript">
var substringMatcher = function (strs) {
return function findMatches(q, cb) {
var matches, substringRegex;
matches = [];
substrRegex = new RegExp(q, "i");
$.each(strs, function (i, str) {
if (substrRegex.test(str)) {
matches.push(str);
}
});
cb(matches);
};
};
var countries = [
"Andorra",
"United Arab Emirates",
"Afghanistan",
"Antigua and Barbuda",
"Anguilla",
"Albania",
"Armenia",
"Angola",
"Antarctica",
"Argentina",
"American Samoa",
"Austria",
"Australia",
"Aruba",
"Åland",
"Azerbaijan",
"Bosnia and Herzegovina",
"Barbados",
"Bangladesh",
"Belgium",
"Burkina Faso",
"Bulgaria",
"Bahrain",
"Burundi",
"Benin",
"Saint Barthélemy",
"Bermuda",
"Brunei",
"Bolivia",
"Bonaire",
"Brazil",
"Bahamas",
"Bhutan",
"Bouvet Island",
"Botswana",
"Belarus",
"Belize",
"Canada",
"Cocos [Keeling] Islands",
"Congo",
"Central African Republic",
"Republic of the Congo",
"Switzerland",
"Ivory Coast",
"Cook Islands",
"Chile",
"Cameroon",
"China",
"Colombia",
"Costa Rica",
"Cuba",
"Cape Verde",
"Curacao",
"Christmas Island",
"Cyprus",
"Czechia",
"Germany",
"Djibouti",
"Denmark",
"Dominica",
"Dominican Republic",
"Algeria",
"Ecuador",
"Estonia",
"Egypt",
"Western Sahara",
"Eritrea",
"Spain",
"Ethiopia",
"Finland",
"Fiji",
"Falkland Islands",
"Micronesia",
"Faroe Islands",
"France",
"Gabon",
"United Kingdom",
"Grenada",
"Georgia",
"French Guiana",
"Guernsey",
"Ghana",
"Gibraltar",
"Greenland",
"Gambia",
"Guinea",
"Guadeloupe",
"Equatorial Guinea",
"Greece",
"South Georgia and the South Sandwich Islands",
"Guatemala",
"Guam",
"Guinea-Bissau",
"Guyana",
"Hong Kong",
"Heard Island and McDonald Islands",
"Honduras",
"Croatia",
"Haiti",
"Hungary",
"Indonesia",
"Ireland",
"Israel",
"Isle of Man",
"India",
"British Indian Ocean Territory",
"Iraq",
"Iran",
"Iceland",
"Italy",
"Jersey",
"Jamaica",
"Jordan",
"Japan",
"Kenya",
"Kyrgyzstan",
"Cambodia",
"Kiribati",
"Comoros",
"Saint Kitts and Nevis",
"North Korea",
"South Korea",
"Kuwait",
"Cayman Islands",
"Kazakhstan",
"Laos",
"Lebanon",
"Saint Lucia",
"Liechtenstein",
"Sri Lanka",
"Liberia",
"Lesotho",
"Lithuania",
"Luxembourg",
"Latvia",
"Libya",
"Morocco",
"Monaco",
"Moldova",
"Montenegro",
"Saint Martin",
"Madagascar",
"Marshall Islands",
"Macedonia",
"Mali",
"Myanmar [Burma]",
"Mongolia",
"Macao",
"Northern Mariana Islands",
"Martinique",
"Mauritania",
"Montserrat",
"Malta",
"Mauritius",
"Maldives",
"Malawi",
"Mexico",
"Malaysia",
"Mozambique",
"Namibia",
"New Caledonia",
"Niger",
"Norfolk Island",
"Nigeria",
"Nicaragua",
"Netherlands",
"Norway",
"Nepal",
"Nauru",
"Niue",
"New Zealand",
"Oman",
"Panama",
"Peru",
"French Polynesia",
"Papua New Guinea",
"Philippines",
"Pakistan",
"Poland",
"Saint Pierre and Miquelon",
"Pitcairn Islands",
"Puerto Rico",
"Palestine",
"Portugal",
"Palau",
"Paraguay",
"Qatar",
"Réunion",
"Romania",
"Serbia",
"Russia",
"Rwanda",
"Saudi Arabia",
"Solomon Islands",
"Seychelles",
"Sudan",
"Sweden",
"Singapore",
"Saint Helena",
"Slovenia",
"Svalbard and Jan Mayen",
"Slovakia",
"Sierra Leone",
"San Marino",
"Senegal",
"Somalia",
"Suriname",
"South Sudan",
"São Tomé and Príncipe",
"El Salvador",
"Sint Maarten",
"Syria",
"Swaziland",
"Turks and Caicos Islands",
"Chad",
"French Southern Territories",
"Togo",
"Thailand",
"Tajikistan",
"Tokelau",
"East Timor",
"Turkmenistan",
"Tunisia",
"Tonga",
"Turkey",
"Trinidad and Tobago",
"Tuvalu",
"Taiwan",
"Tanzania",
"Ukraine",
"Uganda",
"U.S. Minor Outlying Islands",
"United States",
"Uruguay",
"Uzbekistan",
"Vatican City",
"Saint Vincent and the Grenadines",
"Venezuela",
"British Virgin Islands",
"U.S. Virgin Islands",
"Vietnam",
"Vanuatu",
"Wallis and Futuna",
"Samoa",
"Kosovo",
"Yemen",
"Mayotte",
"South Africa",
"Zambia",
"Zimbabwe"
];
$(document).ready(function () {
$("form .typeahead").typeahead(
{
hint: true,
highlight: true,
minLength: 1
},
{
name: "countries",
source: substringMatcher(countries)
}
);
});
</script>