當前位置:成語大全網 - 新華字典 - 網頁上面如何做帶搜索篩選功能的選擇框,下拉列表。

網頁上面如何做帶搜索篩選功能的選擇框,下拉列表。

如果僅考慮客戶端,那麽用的就是數據字典,將數據緩存起來。

考慮到數據來自於服務端的比較多,且結合AJAX技術,下拉框中的內容每發生壹次改變,就會查詢壹次服務器,然後服務端對客戶端的請求進行處理,找到響應的數據,並反饋給客戶端,然後客戶端進行顯示,這種下拉框式的列表,如今壹般都是自己寫的樣式了。

為避免頁面重復刷新,推薦使用AJAX進行異步交互。

<html>

<head>

<meta http-equiv="Content-Type" content="text/html" charset="utf-8">

<meta name="GENERATOR" content="Microsoft FrontPage 4.0">

<meta name="ProgId" content="FrontPage.Editor.Document">

<title>123</title>

<style type="text/css">

#list

{

height: 100px;

width: 155px;

border:1px solid #FFCC00;

}

</style>

</head>

<body>

<input id="search"/>

<div id="list" style="display: none;">

<ul id="group">

</ul>

</div>

</body>

<script LANGUAGE="JAVASCRIPT">

var array = [["a", "ab", "abc"], ["d", "de", "def"]];

var search = document.getElementById("search");

var list = document.getElementById("list");?

var group = document.getElementById("group");

search.addEventListener("input", input, false);

//search.addEventListener("keyup", keyup, false);

function input(){

//刪除所有子節點

var children = group.childNodes;

while(group.lastChild)

{

group.removeChild(group.lastChild);

list.style.display = "none";

}

for(var i = 0; i < array.length; i++)

{

for(var j = 0; j < array[i].length; j++)

{

if(search.value.toString() == array[i][j])

{

list.style.display = "block";

show(array[i]);

}

}

}

}

//顯示內容

function show(arr){

var temp = arr;

for(var k = 0; k < temp.length; k++)

{

if(temp[k].indexOf(search.value) > -1)

{

var ele = document.createElement("li");

group.appendChild(ele);

ele.innerHTML = temp[k];

}

}

}

</script>

</html>

如果要兼容IE,input事件名稱要做修改。