Kuhakikisha kufanya kushika bila kuzama.

Mwongozo wa kuzima kufanya kushika bila kuzama.

Kushika bila kuzama

anza kuandika:

Kuomwa kwa kusoma

Kina fomu ya maudhui yaliyotumika kwa ajili ya kufanya kushika:

Kipimo kumi na tatu - Kina HTML:

<!-- Hii inafikia kuwa tukingatia uharibifu wa maudhui yaliyotumika kwa ajili ya fomu: -->
<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>

Kipimo kumi na tatu - Kina kipakana kwa ajili ya jirani JavaScript:

Mwakilisho wa nchi na eneo zote duniani:

var nchi = ["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 African 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, NauroKampuni ya Nepal, Netherlands, Netherlands Antilles, New Caledonia, New Zealand, Nicaragua, Niger, Nigeria, Korea Kaskazini, 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, Afrika Kusini, Korea Kusini, South Sudan,Hispania,Shri-Lanka,St. Kitts na Nevis,St. Lucia,St. Vincent,Sudani,Surinamu,Swasilàndi,Swidishi,Swisilandi,Süria,Taiwan,Tadikisitani,Tanzania,Tailandi,Timor L'Este,Togo,Tongwa,Trinidad na Tobago,Tunisi,Turuki,Turkmenistani,Turks na Caicos,Tuvalu,Uganda,Ukrania,Umajiri ya Arabu,United Kingdom,United States of America,Uruguay,Uzbekistani,Vanuatu,Vatikani,Venesuela,Vietnami,Kisiwani ya Uingereza (US),Yemeni,Zambia,Zimbabwe;

Tatu - Ongeza CSS:

Kifaa kinahitaji kuwa na kina kina kina kina.

* { box-sizing: border-box; }
body {
  font: 16px Arial;
}
.autocomplete {
  /* Kifaa kinahitaji kuingia kwa kina kina kina kina: */
  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;
  /* Kufaa kusababisha kufikia kufikia kwa kina kina cha kifaa: */
  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 {
  /* Kama inasaidia kufikia vitu kwa kumtaarifu kwa kifungu: */
  background-color: #e9e9e9;
}
.autocomplete-active {
  /* Kama inasaidia kufikia vitu kwa kibatili cha kifungu: */
  background-color: DodgerBlue !important;
  color: #ffffff;
}

Taratibu ya nne - Ongeza JavaScript:

function autocomplete(inp, arr) {
  /* Mfano wa kuzingatia au kuzingatia kwa uraifu ni wa kuzingatia kwa kifaa cha jina na mifano yenye uwezo wa kuzingatia: */
  var currentFocus;
  /* Tukio ambao linategemea kufikia kwa sababu ya kuita kwenye kiini cha jina: */
  inp.addEventListener("input", function(e) {
      var a, b, i, val = this.value;
      /* Kufungua orodha ya thamani za kuzingatia ambazo zilizofunguliwa: */
      closeAllLists();
      if (!val) { return false;}
      currentFocus = -1;
      /* Kuunda kiini cha DIV kinachohusiana na mifano (maadili): */
      a = document.createElement("DIV");
      a.setAttribute("id", this.id + "autocomplete-list");
      a.setAttribute("class", "autocomplete-items");
      /* Kuongeza kama mtoto wa kiini cha kifaa cha kuzingatia jina: */
      this.parentNode.appendChild(a);
      /* Kufikia kila kipengele cha mazingira wa kifaa... */
      for (i = 0; i < arr.length; i++) {
        /* Tukioleza kama vitu vya kwanza vya kiini cha jina la kawaida linapatikana kwa ujumbe wa kawaida: */
        if (arr[i].substr(0, val.length).toUpperCase() == val.toUpperCase()) {
          /* Create a DIV element for each matching element: */
          b = document.createElement("DIV");
          /* Bold the matching letters: */
          b.innerHTML = "<strong>" + arr[i].substr(0, val.length) + "</strong>";
          b.innerHTML += arr[i].substr(val.length);
          /* Insert an input field to save the value of the current array item: */
          b.innerHTML += "<input type='hidden' value='" + arr[i] + "'>";
          /* Execute a function when someone clicks on the item value (DIV element): */
              b.addEventListener("click", function(e) {
              /* Insert the value of the auto-complete text field: */
              inp.value = this.getElementsByTagName("input")[0].value;
              /* Close the auto-complete value list, or any other open auto-complete value list: */
              closeAllLists();
          });
          a.appendChild(b);
        }
      }
  });
  /* Execute a function when someone presses a key on the keyboard: */
  inp.addEventListener("keydown", function(e) {
      var x = document.getElementById(this.id + "autocomplete-list");
      if (x) x = x.getElementsByTagName("div");
      if (e.keyCode == 40) {
        /* If the down arrow key is pressed, increase the currentFocus variable: */
        currentFocus++;
        /* And make the current item more prominent: */
        addActive(x);
      } else if (e.keyCode == 38) { //up
        /* If the up arrow key is pressed, decrease the currentFocus variable: */
        currentFocus--;
        /* And make the current item more prominent: */
        addActive(x);
      } else if (e.keyCode == 13) {
        /* If the ENTER key is pressed, prevent the form from being submitted: */
        e.preventDefault();
        if (currentFocus > -1) {
          /* 并模拟点击“活动”项目:*/
          if (x) x[currentFocus].click();
        }
      }
  });
  function addActive(x) {
    /* 将项目分类为“活动”的函数:*/
    if (!x) return false;
    /* 首先删除所有项目中的 "active" 类:*/
    removeActive(x);
    if (currentFocus >= x.length) currentFocus = 0;
    if (currentFocus < 0) currentFocus = (x.length - 1);
    /* 添加 "autocomplete-active" 类:*/
    x[currentFocus].classList.add("autocomplete-active");
  }
  function removeActive(x) {
    /* 从所有自动完成项中删除 "active" 类的函数:*/
    for (var i = 0; i < x.length; i++) {
      x[i].classList.remove("autocomplete-active");
    }
  }
  function closeAllLists(elmnt) {
    /*关闭文档中的所有自动完成列表,除了作为参数传递的那个:*/
    var x = document.getElementsByClassName("autocomplete-items");
    for (var i = 0; i < x.length; i++) {
      if (elmnt != x[i] && elmnt != inp) {
      x[i].parentNode.removeChild(x[i]);
    }
  }
}
/* 当有人单击文档时执行的函数*/
document.addEventListener("click", function (e) {
    closeAllLists(e.target);
});
}

第五步 - 在 "myInput" 上启用自动完成功能:

将国家数组作为 autocomplete 函数的第二个参数传递:

<script>
autocomplete(document.getElementById("myInput"), countries);
</script>

Kuomwa kwa kusoma