選單
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

HOW TO

HowTo Home

Menus

圖示欄 選單圖示 手風琴 選項卡 垂直選項卡 選項卡標題 全頁選項卡 懸停選項卡 頂部導航 響應式頂欄 分體式導航 帶圖示的導航欄 搜尋選單 搜尋欄 固定側邊欄 側邊導航 響應式側邊欄 全屏導航 畫布外選單 懸停側邊欄按鈕 帶圖示的側邊欄 水平滾動選單 垂直選單 底部導航 響應式底部導航 底部邊框導航連結 右對齊菜單鏈接 居中文件連結 等寬菜單鏈接 固定選單 滾動時下拉選單 滾動時隱藏導航欄 滾動時收縮導航欄 粘性導航欄 導航欄上的圖片 懸停下拉選單 點選下拉選單 級聯下拉選單 頂欄中的下拉選單 側邊欄中的下拉選單 響應式導航欄下拉選單 子導航選單 下拉選單 巨型選單 移動選單 幕布選單 摺疊側邊欄 摺疊側邊面板 分頁 麵包屑 按鈕組 垂直按鈕組 粘性社交欄 藥丸導航 響應式標題

圖片

幻燈片 幻燈片畫廊 模態影像 燈箱 響應式影像網格 影像網格 影像畫廊 可滾動影像畫廊 選項卡畫廊 影像疊加淡入 影像疊加滑動 影像疊加縮放 影像疊加標題 影像疊加圖示 影像效果 黑白影像 影像文字 影像文字塊 透明影像文字 全頁影像 影像上的表單 英雄影像 模糊背景影像 滾動時更改背景 並排影像 圓角影像 頭像影像 響應式影像 居中文件 縮圖 影像周圍的邊框 團隊介紹 粘性影像 翻轉影像 抖動影像 作品集畫廊 帶過濾器的作品集 影像縮放 影像放大鏡 影像對比度滑塊 圖示

按鈕

警報按鈕 輪廓按鈕 分體式按鈕 動畫按鈕 漸變按鈕 影像上的按鈕 社交媒體按鈕 閱讀更多/閱讀更少 載入按鈕 下載按鈕 藥丸按鈕 通知按鈕 圖示按鈕 下一個/上一個按鈕 導航中的更多按鈕 塊狀按鈕 文字按鈕 圓形按鈕 滾動到頂部按鈕

表單

登入表單 登錄檔單 結賬表單 聯絡表單 社交登入表單 登錄檔單 帶圖示的表單 新聞通訊 堆疊表單 響應式表單 彈出表單 內聯表單 清除輸入欄位 隱藏數字箭頭 複製文字到剪貼簿 動畫搜尋 搜尋按鈕 全屏搜尋 導航欄中的輸入欄位 導航欄中的登入表單 自定義複選框/單選按鈕 自定義選擇 切換開關 檢查複選框 檢測大寫鎖定 按 Enter 鍵觸發按鈕 密碼驗證 切換密碼可見性 多步表單 自動完成 關閉自動完成 關閉拼寫檢查 檔案上傳按鈕 空輸入驗證

Filters

篩選列表 篩選表格 篩選元素 篩選下拉選單 排序列表 排序表格

表格

斑馬條紋表 居中文件 全寬表 巢狀表 並排表 響應式表 對比表

More

全屏影片 模態框 刪除模態框 時間軸 滾動指示器 進度條 技能條 範圍滑塊 顏色選擇器 電子郵件欄位 工具提示 懸停時顯示元素 彈出視窗 可摺疊 日曆 HTML 包含 待辦事項列表 載入器 徽章 星級評分 使用者評分 疊加效果 聯絡人卡片 卡片 翻轉卡片 個人資料卡片 產品卡片 警報 標註 註釋 標籤 絲帶 標籤雲 圓圈 樣式 HR 優惠券 列表組 帶徽章的列表組 無專案符號的列表 響應式文字 鏤空文字 發光文字 固定頁尾 粘性元素 等高 清除浮動 響應式浮動 Snackbar 全屏視窗 滾動繪圖 平滑滾動 漸變背景滾動 粘性標題 滾動時縮小標題 定價表 視差 縱橫比 響應式 Iframes 切換喜歡/不喜歡 切換隱藏/顯示 切換深色模式 切換文字 切換類 新增類 刪除類 更改類 活動類 樹狀檢視 刪除小數點 刪除屬性 離線檢測 查詢隱藏元素 重定向網頁 格式化數字 懸停縮放 翻轉框 垂直居中 DIV 中的居中按鈕 居中列表 懸停過渡 箭頭 形狀 下載連結 全高元素 瀏覽器視窗 自定義捲軸 隱藏捲軸 顯示/強制顯示捲軸 裝置外觀 Contenteditable 邊框 佔位符顏色 停用文字區域的調整大小 停用文字選擇 文字選擇顏色 專案符號顏色 垂直線 分隔符 文字分隔符 動畫圖示 倒計時計時器 打字機 即將推出頁面 聊天訊息 彈出聊天視窗 分屏 客戶評價 部分計數器 引言幻燈片 可關閉的列表項 典型裝置斷點 可拖動的 HTML 元素 JS 媒體查詢 語法高亮器 JS 動畫 JS 字串長度 JS 指數運算 JS 預設引數 JS 隨機數 JS 對數字陣列進行排序 JS 擴充套件運算子 JS 滾動到檢視 獲取當前日期 獲取當前 URL 獲取當前螢幕尺寸 獲取 Iframe 元素

網站

建立免費網站 製作網站 製作靜態網站 託管靜態網站 製作網站 (W3.CSS) 製作網站 (BS3) 製作網站 (BS4) 製作網站 (BS5) 建立和檢視網站 建立 Link Tree 網站 建立作品集 建立簡歷 製作餐廳網站 製作商業網站 製作 WebBook 居中文件 聯絡部分 關於頁面 大標題 示例網站

Grid

2 列布局 3 列布局 4 列布局 展開式網格 列表網格檢視 混合列布局 列卡片 鋸齒佈局 部落格佈局

Google

Google Charts Google Fonts Google Font 配對 Google 設定分析

Converters

轉換重量 轉換溫度 轉換長度 轉換速度

部落格

獲得開發人員工作 成為前端開發人員 聘請開發人員

How TO - Autocomplete


瞭解如何建立自動完成功能。


Autocomplete

開始輸入


自己動手試一試 »


建立自動完成表單

步驟 1) 新增 HTML

示例

<!--確保表單的 autocomplete 功能已關閉:-->
<form autocomplete="off" action="/action_page.php">
  <div class="autocomplete" style="width:300px;">
    <input id="myInput" type="text" name="myCountry" placeholder="國家">
  </div>
  <input type="submit">
</form>

步驟 2) 建立 JavaScript 陣列

示例

世界所有國家的陣列

var countries = ["Afghanistan","Albania","Algeria","Andorra","Angola","Anguilla","Antigua &amp; Barbuda","Argentina","Armenia","Aruba","Australia","Austria","Azerbaijan","Bahamas","Bahrain","Bangladesh","Barbados","Belarus","Belgium","Belize","Benin","Bermuda","Bhutan","Bolivia","Bosnia &amp; 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 &amp; 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 &amp; Nevis","St Lucia","St Vincent","Sudan","Suriname","Swaziland","Sweden","Switzerland","Syria","Taiwan","Tajikistan","Tanzania","Thailand","Timor L'Este","Togo","Tonga","Trinidad &amp; Tobago","Tunisia","Turkey","Turkmenistan","Turks &amp; 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"];

步驟 3) 新增 CSS

容器必須具有“相對”定位。

示例

* { box-sizing: border-box; }
body {
  font: 16px Arial;
}
.autocomplete {
  /*容器必須是相對定位:*/
  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;
  /*將自動完成項定位為與容器相同寬度:*/
  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 {
  /*懸停在專案上時:*/
  background-color: #e9e9e9;
}
.autocomplete-active {
  /*使用箭頭鍵導航專案時:*/
  background-color: DodgerBlue !important;
  color: #ffffff;
}


步驟 4) 新增 JavaScript

示例

function autocomplete(inp, arr) {
  /*此自動完成函式接受兩個引數,
  文字欄位元素和一個可能的自動完成值的陣列:*/
  var currentFocus;
  /*當有人在文字欄位中輸入內容時執行函式:*/
  inp.addEventListener("input", function(e) {
      var a, b, i, val = this.value;
      /*關閉任何已開啟的自動完成值列表*/
      closeAllLists();
      if (!val) { return false;}
      currentFocus = -1;
      /*建立將包含專案(值)的 DIV 元素:*/
      a = document.createElement("DIV");
      a.setAttribute("id", this.id + "autocomplete-list");
      a.setAttribute("class", "autocomplete-items");
      /*將 DIV 元素作為自動完成容器的子項追加:*/
      this.parentNode.appendChild(a);
      /*對於陣列中的每個專案...*/
      for (i = 0; i < arr.length; i++) {
        /*檢查專案是否以與文字欄位值相同的字母開頭:*/
        if (arr[i].substr(0, val.length).toUpperCase() == val.toUpperCase()) {
          /*為每個匹配的元素建立 DIV 元素:*/
          b = document.createElement("DIV");
          /*將匹配的字母加粗:*/
          b.innerHTML = "<strong>" + arr[i].substr(0, val.length) + "</strong>";
          b.innerHTML += arr[i].substr(val.length);
          /*插入一個 input 欄位,其中將儲存當前陣列項的值:*/
          b.innerHTML += "<input type='hidden' value='" + arr[i] + "'>";
          /*當有人單擊專案值(DIV 元素)時執行函式:*/
              b.addEventListener("click", function(e) {
              /*為自動完成文字欄位插入值:*/
              inp.value = this.getElementsByTagName("input")[0].value;
              /*關閉自動完成值列表,
              (或任何其他開啟的自動完成值列表:*/
              closeAllLists();
          });
          a.appendChild(b);
        }
      }
  });
  /*當有人在鍵盤上按下按鍵時執行函式:*/
  inp.addEventListener("keydown", function(e) {
      var x = document.getElementById(this.id + "autocomplete-list");
      if (x) x = x.getElementsByTagName("div");
      if (e.keyCode == 40) {
        /*如果按下箭頭 DOWN 鍵,
        則增加 currentFocus 變數:*/
        currentFocus++;
        /*並使當前專案更加可見:*/
        addActive(x);
      } else if (e.keyCode == 38) { // up
        /*如果按下箭頭 UP 鍵,
        則減少 currentFocus 變數:*/
        currentFocus--;
        /*並使當前專案更加可見:*/
        addActive(x);
      } else if (e.keyCode == 13) {
        /*如果按下 ENTER 鍵,則阻止表單提交,*/
        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);
});
}

步驟 5) 初始化“myInput”上的自動完成效果

示例

將 countries 陣列作為 autocomplete 函式的第二個引數傳遞

<script>
autocomplete(document.getElementById("myInput"), countries);
</script>
自己動手試一試 »

×

聯絡銷售

如果您想將 W3Schools 服務用於教育機構、團隊或企業,請傳送電子郵件給我們
sales@w3schools.com

報告錯誤

如果您想報告錯誤,或想提出建議,請傳送電子郵件給我們
help@w3schools.com

W3Schools 經過最佳化,旨在方便學習和培訓。示例可能經過簡化,以提高閱讀和學習體驗。教程、參考資料和示例會不斷審查,以避免錯誤,但我們無法保證所有內容的完全正確性。使用 W3Schools 即表示您已閱讀並接受我們的使用條款Cookie 和隱私政策

版權所有 1999-2024 Refsnes Data。保留所有權利。W3Schools 由 W3.CSS 提供支援