Select下拉框模糊查询功能实现代码
select下拉列表框支持输入模糊查询功能,设计非常的人性化,下面小编给大家分享了关键代码,大家根据自己的需求适当的添加修改,有任何问题欢迎给我反馈。
关键代码如下所示:
<HTML>
<HEAD>
<METAhttp-equiv='Content-Type'content='text/html;charset=gb2312'>
<TITLE>可输入的下拉框</TITLE>
</HEAD>
<BODY>
<ScriptLanguage="Javascript">
varj=0;
functionSelectValue(obj)
{
varinput=obj.parentNode.nextSibling;
document.all.box2.value=obj.options[obj.selectedIndex].text;
document.getElementById("txtSection").value=obj.options[obj.selectedIndex].value;
alert(document.getElementById("txtSection").value);
}
functionInputValue(obj)
{
varn=1;
vartmpObj;
varsrc=document.all.SelectOption;
varmsg=document.all.msg;
if(event.keyCode!=40&&event.keyCode!=38&&event.keyCode!=13){
if(obj.value!=""){
msg.style.display="";
msg.innerHTML="";
if(msg.hasChildNodes())
{
msg.childNodes[0].parentNode.removeChild(msg.childNodes[0]);
}
for(vari=0;i<src.length;i++){
varselValue=document.createElement("div");
varselText=document.createElement("div");
selText.value=src(i).value;
selText.innerHTML=src(i).text;
if(src(i).text.toLowerCase().indexOf(obj.value.toLowerCase())==0){
selText.setAttribute("id","selText"+n);
selText.onmouseover=function(){
this.style.backgroundColor='#003399';
this.style.color='#ffffff';
}
selText.onmouseout=function(){
this.style.backgroundColor='#ffffff';
this.style.color='#000000';
}
selText.onclick=function(){
document.all.box2.value=this.innerHTML;
msg.style.display="none";
document.getElementById("txtSection").value=this.value;
}
msg.appendChild(selText);
n++;
}
}
}
else{
document.all.msg.style.display="none";
}
}
else{
//pressdownkey
if(event.keyCode==40){
j++;
for(vari=0;i<src.length;i++)
{
tmpObj=document.getElementById("selText"+i);
if(tmpObj!=null){
tmpObj.style.backgroundColor='#ffffff';
tmpObj.style.color='#000000';
}
}
tmpObj=document.getElementById("selText"+j);
if(tmpObj!=null){
tmpObj.style.backgroundColor='#003399';
tmpObj.style.color='#ffffff';
}else{
j=0;
}
}
//pressupkey
if(event.keyCode==38){
j--;
for(vari=0;i<src.length;i++)
{
tmpObj=document.getElementById("selText"+i);
if(tmpObj!=null){
tmpObj.style.backgroundColor='#ffffff';
tmpObj.style.color='#000000';
}
}
tmpObj=document.getElementById("selText"+j);
if(tmpObj!=null){
tmpObj.style.backgroundColor='#003399';
tmpObj.style.color='#ffffff';
}else{
j=2;
}
}
//pressenterkey
if(event.keyCode==13){
tmpObj=document.getElementById("selText"+j);
document.all.box2.value=tmpObj.innerHTML;
msg.style.display="none";
document.getElementById("txtSection").value=tmpObj.value;
}
}
}
functionSelMatch(src)
{
varcurrSel=document.all.box2.value;
for(vari=0;i<src.length;i++){
if(src(i).text==currSel)
{
src.options(i).selected=true;
}
}
}
functionNoMsg()
{
if(document.activeElement.id=="msg")
returnfalse;
else
document.all.msg.style.display='none';
}
</Script>
<TABLEborder=0cellPadding=1cellSpacing=0width="100%">
<TR>
<TDwidth="24%"><fontface="Arial"size="2">Section</font></TD>
<TDCOLSPAN=3width="76%">
<divstyle="position:relative;">
<spanstyle="margin-left:230px;width:18px;overflow:hidden;">
<selectstyle="HEIGHT:22px;WIDTH:250px;margin-left:-232px;"onchange="SelectValue(this)"onclick="SelMatch(this)"id="SelectOption"name="SelectOption">
<OPTIONvalue='ALL'Selected>ALL</OPTION>
<OPTIONvalue='0TEST1'>0TEST1=Testing1
<OPTIONvalue='0TEST1'>0TEST2=Testing1
<OPTIONvalue='0TEST1'>0TEST3=Testing1
<OPTIONvalue='SECTION'>SECTION=SectionDescriptionXXXXXAAA
</OPTION>
</select></span>
<inputname="box2"id="box2"style="width:230px;position:absolute;left:0px;"onkeyup="InputValue(this)"onblur="NoMsg()"onfocus="this.select();InputValue(this)"value="0">
<divid="msg"style="border:1pxsolidgreen;font-size:14PX;white-space:nowrap;overflow:hidden;
width:230px;position:absolute;left:0px;top:20px;display:none"></div>
</div>
<InputType="Hidden"Name="txtSection"id="txtSection">
</TD>
</TR>
</TABLE>
<p>
</BODY></HTML>
以上所述是小编给大家介绍的Select下拉框模糊查询功能实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!