js:
var j = 0;
function SelectValue(obj,txtId,divBoxId)
{
var input = obj.parentNode.nextSibling;
document.getElementById(divBoxId).value = obj.options[obj.selectedIndex].text;
document.getElementById(txtId).value=obj.options[obj.selectedIndex].value;
//alert(document.getElementById(txtId).value);
}
function InputValue(obj,txtId,selectId,msgId,divBoxId,objDisplaySelect)
{
var n = 1;
var tmpObj;
var src = document.getElementById(selectId);
var msg = document.getElementById(msgId);
if(objDisplaySelect!=undefined&&msg.style.display=="")
{
var objSelect= objDisplaySelect.split(",");
for(var i=0; i<objSelect.length;i++)
{
document.getElementById(objSelect[i]).style.display="none";
}
}
else if(objDisplaySelect!=undefined&&msg.style.display=="none")
{
var objSelect= objDisplaySelect.split(",");
for(var i=0; i<objSelect.length;i++)
{
document.getElementById(objSelect[i]).style.display="";
}
}
if(event.keyCode != 40 && event.keyCode != 38 && event.keyCode != 13){
if(obj.value!=""){
if(objDisplaySelect!=undefined)
{
var objSelect= objDisplaySelect.split(",");
for(var i=0; i<objSelect.length;i++)
{
document.getElementById(objSelect[i]).style.display="none";
}
}
msg.style.display="";
msg.innerText="";//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 (){
if(objDisplaySelect!=undefined)
{
var objSelect= objDisplaySelect.split(",");
for(var i=0; i<objSelect.length;i++)
{
document.getElementById(objSelect[i]).style.display="";
}
}
document.getElementById(divBoxId).value = this.innerHTML;
msg.style.display="none";
document.getElementById(txtId).value=this.value;
}
msg.appendChild(selText);
n++;
}
}
}
else {
document.getElementById(msgId).style.display="";
document.getElementById(txtId).value="-1";
if(objDisplaySelect!=undefined&&msg.style.display=="")
{
var objSelect= objDisplaySelect.split(",");
for(var i=0; i<objSelect.length;i++)
{
document.getElementById(objSelect[i]).style.display="none";
}
}
else if(objDisplaySelect!=undefined&&msg.style.display=="none")
{
var objSelect= objDisplaySelect.split(",");
for(var i=0; i<objSelect.length;i++)
{
document.getElementById(objSelect[i]).style.display="";
}
}
// if(objDisplaySelect!=undefined)
// {
// var objSelect= objDisplaySelect.split(",");
// for(var i=0; i<objSelect.length;i++)
// {
// document.getElementById(objSelect[i]).style.display="none";
// }
// }
if(msg.hasChildNodes())
{
msg.innerText="";
for(var i=0;i<msg.childNodes.length;i++)
msg.childNodes[i].parentNode.removeChild(msg.childNodes[i]);
}
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;
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 ()
{
if(objDisplaySelect!=undefined)
{
var objSelect= objDisplaySelect.split(",");
for(var i=0; i<objSelect.length;i++)
{
document.getElementById(objSelect[i]).style.display="";
}
}
document.getElementById(divBoxId).value = this.innerHTML;
msg.style.display="none";
document.getElementById(txtId).value=this.value;
}
msg.appendChild(selText);
n++;
}
}
}
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);
if(tmpObj !=null)
{
document.getElementById(divBoxId).value = tmpObj.innerHTML;
msg.style.display="none";
document.getElementById(txtId).value=tmpObj.value;
// if(objDisplaySelect!=undefined)
// {
// var objSelect= objDisplaySelect.split(",");
// for(var i=0; i<objSelect.length;i++)
// {
// document.getElementById(objSelect[i]).style.display="";
// }
// }
}
}
}
}
function SelMatch(src,divBoxId)
{
var currSel = document.getElementById(divBoxId).value;
for (var i=0;i<src.length;i++){
if (src(i).text==currSel)
{
src.options(i).selected = true;
}
}
}
function NoMsg(megId,objDisplaySelect)
{
if(document.activeElement.id==megId)
return false;
else
{
if(objDisplaySelect!=undefined)
{
var objSelect= objDisplaySelect.split(",");
for(var i=0; i<objSelect.length;i++)
{
document.getElementById(objSelect[i]).style.display="";
}
}
document.getElementById(megId).style.display="none";
}
}
html:
<div class="selectStyle">
<span id="dropSpan" class="selectSpan" style="margin-left:234px;width:18px; " >
<asp:DropDownList ID="dropDowListDept" runat="server" CssClass="selectDorpDown" onchange="SelectValue(this,'txtSection','inputSearchName')" onclick="SelMatch(this,'inputSearchName')" ></asp:DropDownList>
</span>
<input name="inputSearchName" id="inputSearchName" style="width:234px;" class="inputPosition" onkeyup="InputValue(this,'txtSection','<%=dropDowListDept.ClientID %>','msg','inputSearchName','<%=MonthSelect.ClientID%>,<%=DropDownListKqType.ClientID %>')" onblur="NoMsg('msg','<%=MonthSelect.ClientID%>,<%=DropDownListKqType.ClientID %>')" onfocus="InputValue(this,'txtSection','<%=dropDowListDept.ClientID %>','msg','inputSearchName','<%=MonthSelect.ClientID%>,<%=DropDownListKqType.ClientID %>')" value="全部" />
<div id="msg" style="width:230px; height:250px; display:none;" class="selectDivStyle"> </div>
<input type="hidden" name="txtSection" id="txtSection" />
</div>
CSS:
.glist {overflow:no;}
.glist .border_table{border-top:1px solid #9EB2EC;border-left:1px solid #9EB2EC;border-right:1px solid #9EB2EC;}
.glist .header{background-color:#BBCCFF;height:31px;}
.glist .header td{border-top:#FFF solid 1px;vertical-align:middle;text-align:center;}
.glist .header .colLeft{border-left:#FFF solid 1px;}
.glist .header .col{border-left:#FFF solid 1px;}
.glist .header .colRight{border-left:#FFF solid 1px;}
.glist .item{height:23px;}
.glist .item td{text-align:center;vertical-align:middle;border-bottom:1px solid #9EB2EC;}
.glist .item .col{border-left:1px solid #9EB2EC;}
.glist .item .colRight{border-left:1px solid #9EB2EC;}
.glist .empt td{border-bottom:1px solid #9EB2EC; text-align:center;}
.glist .oper{border:1px #000;}
.itemImport .item .colExceptionColor {background-color:#FF712D;}
.itemSpan {height:20px;width:75px;text-align:center;background-color:#E3E9FF;}
.selectStyle{position:absolute;}
.selectStyle .bodyOverflow {overflow:auto;}
.selectStyle .inputPosition {position:absolute;left:0px;}
.selectStyle .selectDivStyle{border:1px solid #9EB2EC; font-size :14px;white-space:nowrap;overflow:auto;position:absolute;left:0px;top:20px; background-color:#FFF; }
.selectStyle .selectSpan{overflow:hidden;}
.selectStyle .selectDorpDown{height: 22px; width: 250px; margin-left:-232px;display:none}