자동 완성 텍스트필드 (Autocomplete Field)
자동 완성 텍스트필드 (Autocomplete Field)
텍스트 필드에서 특정 내용을 자동완성 해주는 기능을 만들어봅니다:
자동 완성 텍스트필드 만들기
Step 1) HTML 코드 추가하기:
<!–Make sure the form has the autocomplete function switched off:–>
<form autocomplete=”off” action=”/action_page.php”>
<div class=”autocomplete” style=”width:300px;”>
<input id=”myInput” type=”text” name=”myCountry” placeholder=”Country”>
</div>
<input type=”submit”>
</form>
Step 2) 자바스크립트 배열 추가하기:
전 세계 모든 국가의 이름을 배열(array)로 추가해줍니다:
var countries = [“Afghanistan”,“Albania”,“Algeria”,“Andorra”,“Angola”,“Anguilla”,“Antigua & Barbuda”,“Argentina”,“Armenia”,“Aruba”,“Australia”,“Austria”,“Azerbaijan”,“Bahamas”,“Bahrain”,“Bangladesh”,“Barbados”,“Belarus”,“Belgium”,“Belize”,“Benin”,“Bermuda”,“Bhutan”,“Bolivia”,“Bosnia & Herzegovina”,“Botswana”,“Brazil”,“British Virgin Islands”,“Brunei”,“Bulgaria”,“Burkina Faso”,“Burundi”,“Cambodia”,“Cameroon”,“Canada”,“Cape Verde”,“Cayman Islands”,“Central Arfrican Republic”,“Chad”,“Chile”,“China”,“Colombia”,“Congo”,“Cook Islands”,“Costa Rica”,“Cote D Ivoire”,“Croatia”,“Cuba”,“Curacao”,“Cyprus”,“Czech Republic”,“Denmark”,“Djibouti”,“Dominica”,“Dominican Republic”,“Ecuador”,“Egypt”,“El Salvador”,“Equatorial Guinea”,“Eritrea”,“Estonia”,“Ethiopia”,“Falkland Islands”,“Faroe Islands”,“Fiji”,“Finland”,“France”,“French Polynesia”,“French West Indies”,“Gabon”,“Gambia”,“Georgia”,“Germany”,“Ghana”,“Gibraltar”,“Greece”,“Greenland”,“Grenada”,“Guam”,“Guatemala”,“Guernsey”,“Guinea”,“Guinea Bissau”,“Guyana”,“Haiti”,“Honduras”,“Hong Kong”,“Hungary”,“Iceland”,“India”,“Indonesia”,“Iran”,“Iraq”,“Ireland”,“Isle of Man”,“Israel”,“Italy”,“Jamaica”,“Japan”,“Jersey”,“Jordan”,“Kazakhstan”,“Kenya”,“Kiribati”,“Kosovo”,“Kuwait”,“Kyrgyzstan”,“Laos”,“Latvia”,“Lebanon”,“Lesotho”,“Liberia”,“Libya”,“Liechtenstein”,“Lithuania”,“Luxembourg”,“Macau”,“Macedonia”,“Madagascar”,“Malawi”,“Malaysia”,“Maldives”,“Mali”,“Malta”,“Marshall Islands”,“Mauritania”,“Mauritius”,“Mexico”,“Micronesia”,“Moldova”,“Monaco”,“Mongolia”,“Montenegro”,“Montserrat”,“Morocco”,“Mozambique”,“Myanmar”,“Namibia”,“Nauro”,“Nepal”,“Netherlands”,“Netherlands Antilles”,“New Caledonia”,“New Zealand”,“Nicaragua”,“Niger”,“Nigeria”,“North Korea”,“Norway”,“Oman”,“Pakistan”,“Palau”,“Palestine”,“Panama”,“Papua New Guinea”,“Paraguay”,“Peru”,“Philippines”,“Poland”,“Portugal”,“Puerto Rico”,“Qatar”,“Reunion”,“Romania”,“Russia”,“Rwanda”,“Saint Pierre & Miquelon”,“Samoa”,“San Marino”,“Sao Tome and Principe”,“Saudi Arabia”,“Senegal”,“Serbia”,“Seychelles”,“Sierra Leone”,“Singapore”,“Slovakia”,“Slovenia”,“Solomon Islands”,“Somalia”,“South Africa”,“South Korea”,“South Sudan”,“Spain”,“Sri Lanka”,“St Kitts & Nevis”,“St Lucia”,“St Vincent”,“Sudan”,“Suriname”,“Swaziland”,“Sweden”,“Switzerland”,“Syria”,“Taiwan”,“Tajikistan”,“Tanzania”,“Thailand”,“Timor L’Este”,“Togo”,“Tonga”,“Trinidad & Tobago”,“Tunisia”,“Turkey”,“Turkmenistan”,“Turks & Caicos”,“Tuvalu”,“Uganda”,“Ukraine”,“United Arab Emirates”,“United Kingdom”,“United States of America”,“Uruguay”,“Uzbekistan”,“Vanuatu”,“Vatican City”,“Venezuela”,“Vietnam”,“Virgin Islands (US)”,“Yemen”,“Zambia”,“Zimbabwe”];
Step 3) CSS 코드를 추가합니다:
컨테이너의 position 속성값은 “relative”이어야 한다는 점에 유의해주세요.
* { box-sizing: border-box; }
body {
font: 16px Arial;
}
.autocomplete {
/*the container must be positioned relative:*/
position: relative;
display: inline-block;
}
input {
border: 1px solid transparent;
background-color: #f1f1f1;
padding: 10px;
font-size: 16px;
}
input[type=text] {
background-color: #f1f1f1;
width: 100%;
}
input[type=submit] {
background-color: DodgerBlue;
color: #fff;
}
.autocomplete-items {
position: absolute;
border: 1px solid #d4d4d4;
border-bottom: none;
border-top: none;
z-index: 99;
/*position the autocomplete items to be the same width as the container:*/
top: 100%;
left: 0;
right: 0;
}
.autocomplete-items div {
padding: 10px;
cursor: pointer;
background-color: #fff;
border-bottom: 1px solid #d4d4d4;
}
.autocomplete-items div:hover {
/*when hovering an item:*/
background-color: #e9e9e9;
}
.autocomplete-active {
/*when navigating through the items using the arrow keys:*/
background-color: DodgerBlue !important;
color: #ffffff;
}