純 HTML 無法實現下拉提示功能。HTML 只是用於構建網頁結構的標記語言,不具備互動邏輯處理能力。你需要 JavaScript 來實現動態的下拉提示。
不過,你可以用 <datalist>
元素結合 <input>
元素來建立一個類似於下拉提示的功能,但這並非真正的動態下拉提示,它更像是一個預定義選項的輔助輸入。使用者仍然可以輸入任意值,但瀏覽器會根據 <datalist>
中提供的選項提供建議。
以下是一個示例:
<!DOCTYPE html>
<html>
<head>
<title>Datalist Example</title>
</head>
<body>
<label for="browser">Choose a browser from the list:</label>
<input list="browsers" id="browser" name="browser">
<datalist id="browsers">
<option value="Chrome">
<option value="Firefox">
<option value="Internet Explorer">
<option value="Opera">
<option value="Safari">
<option value="Microsoft Edge">
</datalist>
</body>
</html>
在這個例子中:
<input list="browsers">
將輸入框與名為 "browsers" 的<datalist>
關聯起來。<datalist id="browsers">
包含了所有建議的選項。每個<option>
元素定義一個建議值。
當使用者在輸入框中輸入內容時,瀏覽器會根據 <datalist>
中的選項提供匹配的建議。
真正的動態下拉提示需要 JavaScript。 你需要監聽輸入框的輸入事件,然後根據輸入值動態生成下拉選單,並將其顯示在頁面上。 這通常涉及到以下步驟:
- 監聽輸入框事件: 使用
addEventListener
監聽輸入框的input
或keyup
事件。 - 獲取輸入值: 在事件處理函式中,獲取使用者輸入的值。
- 過濾資料: 根據輸入值過濾資料來源(例如,一個包含所有可能選項的陣列)。
- 建立下拉選單: 動態建立一個
<ul>
或<div>
元素作為下拉選單的容器。 - 填充下拉選單: 將過濾後的資料新增到下拉選單中,例如建立
<li>
元素並設定其文字內容。 - 顯示下拉選單: 將下拉選單顯示在頁面上,並設定其位置,使其緊貼輸入框下方。
- 處理選項選擇: 當使用者點選下拉選單中的一個選項時,將該選項的值填充到輸入框中,並隱藏下拉選單。
雖然 <datalist>
提供了一種簡單的類似下拉提示的功能,但它功能有限,無法實現真正的動態過濾和更新。 對於更復雜的需求,你必須使用 JavaScript。