于是这code便诞生了,如下:
<script type="text/javascript" language="javascript"> <br>var currentIndex=-1;//保存提示框中选择的索引 <br>var sumSearchCount=0;//保存提示框中数据数量 <br>var tempValue="";//保存当前输入的要搜索的内容 <br>var objTxt="";//保存文本框对象 <br>var top=0;//提示框的top <br>var left=0;//提示框的left <br>var width=0;//提示框的width <br>var values = new Array();//保存下拉列表的值 <br>var texts = new Array();//保存下拉列表的显示内容 <br>var tempDiv=new Array();//保存提示框中索引对应的values索引 <br>//获取下拉列表的值和显示内容 <br>function getSelectValues(ddl){ <br>ddlvalue = document.getElementById("DropDownList1"); <br>for(var i=0;i<ddlvalue.length;i++){ <br>values[i]=ddlvalue.options[i].value; <br>texts[i]=ddlvalue.options[i].text; <br>} <br>} <br>var oInterval = "";//保存自动计时对象 <br>function fnStartInterval(txt_id){ <br>getSelectValues("DropDownList1"); <br>objTxt=txt_id;//获取输入文本框对象 <br>top = getLength("offsetTop")+objTxt.offsetHeight; <br>left= getLength("offsetLeft"); <br>width=objTxt.offsetWidth; <br>oInterval = window.setInterval("beginSearch()",2000);//启用计时 <br>} <br>//获取对应属性的长度 <br>function getLength(attribute) <br>{ <br>var offset = 0; <br>var txt_input = document.getElementById("txtSearch"); <br>while (item) <br>{ <br>offset += txt_input[attribute]; <br>txt_input = txt_input.offsetParent; <br>} <br>return offset; <br>} <br>//停止计时 <br>function fnStopInterval() <br>{ <br>window.clearInterval(oInterval); <br>} <br>//自动完成提示 <br>function beginSearch(){ <br>if(objTxt.value.length>0 && tempValue!=objTxt.value) <br>{ <br>sumSearchCount=0; <br>tempValue=objTxt.value; <br>var div_show = document.getElementById("divMsg"); <br>div_show.style.top=top+"px"; <br>div_show.style.display="block"; <br>div_show.style.left=left+"px"; <br>div_show.style.width=width+"px"; <br>div_show.innerHTML=""; <br>var leng = texts.length; <br>var txt_value = objTxt.value; <br>var row=""; <br>for(var i=0;i<leng;i++){ <br>if(texts[i].indexOf(txt_value)!=-1){ <br>row = row + "<div style=\"font-size:14px; display:block; width:100%\" id='divsearch_"+i+"' onmouseover=\"this.style.backgroundColor='#3366CC';currentIndex="+i+";\" onmouseout=\"this.style.backgroundColor='';currentIndex=-1;\" onclick=\"span_click(this)\" >"+texts[i]+"</script>
tempDiv[sumSearchCount]=i;
sumSearchCount++;
}
}
div_show.innerHTML=row;
}
else if(objTxt.value.length==0 || objTxt.value == null)
{
var div_msg = document.getElementById("divMsg");
div_msg.style.display="none";
div_msg.innerHTML="";
}
}
//提示内容单击保存到文本框中
function span_click(sp)
{
clear();
objTxt.value=sp.innerHTML;
document.getElementById("DropDownList1").options[sp.id.substring(sp.id.indexOf('_')+1,sp.id.length)].selected="selected";
}
//停止查询,关闭提示
function closeSearch()
{
var tbl = document.activeElement.parentElement;
if(tbl && tbl.id!="divMsg")//防止使用上下键后丢失提示内容
{
clear();
document.getElementById("divMsg").innerHTML="";
}
else if(currentIndex==-1)
{
clear();
document.getElementById("divMsg").innerHTML="";
}
}
//清空提示
function clear()
{
fnStopInterval();
currentIndex=-1;
tempValue="";
document.getElementById("divMsg").style.display="none";
}
//使用键盘上下方向键和enter键
function changeSelect()
{
var divContent = document.getElementById("divMsg");
if(divContent && divContent.style.display=="block")
{
if (event.keyCode == 38 || event.keyCode == 40 || event.keyCode == 13)
{
if(currentIndex!=-1) document.getElementById("divsearch_"+tempDiv[currentIndex]).style.backgroundColor="";
if (event.keyCode == 38 && currentIndex > 0)
{
currentIndex--;
document.getElementById("divsearch_"+tempDiv[currentIndex]).style.backgroundColor="#3366CC";
}
else if (event.keyCode == 40 && currentIndex {
currentIndex++;
document.getElementById("divsearch_"+tempDiv[currentIndex]).style.backgroundColor="#3366CC";
}
else if (event.keyCode == 13)
{
if(currentIndex > -1)
{
var divpart = document.getElementById("divsearch_"+tempDiv[currentIndex]);
objTxt.value=divpart.innerHTML;
document.getElementById("DropDownList1").options[tempDiv[currentIndex]].selected="selected";
clear();
}
}
}
}
}
以前没有写博客的习惯,好多不经常使用的东西用过就忘了。以后是要整理整理了。











