select下拉列表框支持输入模糊查询功能,设计非常的人性化,下面小编给大家分享了关键代码,大家根据自己的需求适当的添加修改,有任何问题欢迎给我反馈。
关键代码如下所示:
<HTML>
<HEAD>
<META http-equiv=\'Content-Type\' content=\'text/html; charset=gb2312\'>
<TITLE>可输入的下拉框</TITLE>
</HEAD>
<BODY >
<Script Language=\"Javascript\">
var j = 0;
function SelectValue(obj)
{
var input = 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);
}
function InputValue(obj)
{
var n = 1;
var tmpObj;
var src = document.all.SelectOption;
var msg = 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 (var i=0;i<src.length;i++){
var selValue = document.createElement(\"div\");
var selText = 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 {
//press down key
if(event.keyCode==40){
j++;
for (var i=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;
}
}
//press up key
if (event.keyCode==38){
j--;
for (var i=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;
}
}
//press enter key
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;
}
}
}
function SelMatch(src)
{
var currSel = document.all.box2.value;
for (var i=0;i<src.length;i++){
if (src(i).text==currSel)
{
src.options(i).selected = true;
}
}
}
function NoMsg()
{
if(document.activeElement.id==\"msg\")
return false;
else
document.all.msg.style.display=\'none\';
}
</Script>
<TABLE border=0 cellPadding=1 cellSpacing=0 width=\"100%\">
<TR>
<TD width=\"24%\"><font face=\"Arial\" size=\"2\">Section</font></TD>
<TD COLSPAN=3 width=\"76%\">
<div style=\"position:relative;\">
<span style=\"margin-left:230px;width:18px;overflow:hidden;\">
<select style=\"HEIGHT: 22px; WIDTH: 250px; margin-left:-232px;\" onchange=\"SelectValue(this)\" onclick=\"SelMatch(this)\" id=\"SelectOption\" name=\"SelectOption\" >
<OPTION value=\'ALL\' Selected>ALL</OPTION>
<OPTION value=\'0TEST1\'>0TEST1 = Testing 1
<OPTION value=\'0TEST1\'>0TEST2 = Testing 1
<OPTION value=\'0TEST1\'>0TEST3 = Testing 1
<OPTION value=\'SECTION\'>SECTION = Section Description XXXXX AAA
</OPTION>
</select></span>
<input name=\"box2\" id=\"box2\" style=\"width:230px;position:absolute;left:0px;\" onkeyup=\"InputValue(this)\" onblur=\"NoMsg()\" onfocus=\"this.select();InputValue(this)\" value=\"0\" >
<div id=\"msg\" style=\"border:1px solid green; font-size :14PX;white-space:nowrap;overflow:hidden;
width:230px;position:absolute;left:0px;top:20px;display:none\"></div>
</div>
<Input Type=\"Hidden\" Name=\"txtSection\" id=\"txtSection\">
</TD>
</TR>
</TABLE>
<p>
</BODY></HTML>
以上所述是小编给大家介绍的Select下拉框模糊查询功能实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对phpstudy网站的支持!
本文地址:https://www.stayed.cn/item/20727
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我