这是模糊查询的JSvar AC_TAB = 9; // make the selection
var AC_ENTER = 13; // make the selection
var AC_UP_ARROW = 38; // move the drop down list selection up by one
var AC_DOWN_ARROW = 40; // move the drop down list selection down by one
var theListDiv;
var theListArray;
var theComboxObj;
onload=OnLoad
function OnLoad()
{
setTimeout("Initialize()", 100);
}
function Initialize()
{
AddListDivFun(document.all.tofield);
//AddListDivFun(document.all.ccfield);
}
function AddListDivFun(obj)
{
theListArray=eval(obj.id+"ListArray");
var tempStr=new Array();
var tempI=0;
tempStr[tempI++]='<DIV style="position:relative;visibility:hidden">'
+'<DIV class=ac_menu id="'+obj.id+'ListDiv" style="FONT-SIZE: 0.9em; Z-INDEX: 1; visibility:hidden; POSITION: absolute;OVERFLOW-Y:auto; WIDTH:'+obj.offsetWidth+'; " '
+'onmouseover="mouseOverListDivFun(event)" onmouseout="mouseOutListDivFun(event);" onmousedown="mouseDownListDivFun(event);" onscroll="scrollListDivFun();">';
tempStr[tempI++]="</DIV></DIV>";
obj.insertAdjacentHTML("afterEnd",tempStr.join(""));
theListDiv=eval(obj.id+"ListDiv");
obj.onfocus=AC_OnFocus;
obj.onblur=AC_OnBlur;
obj.onkeydown=AC_OnKeyDown;
obj.autoComplete="off";
obj.onpropertychange=AC_OnPropertyChange;
}
function AC_OnFocus(obj)
{
if(obj==null) obj=event.srcElement;
theListDiv=eval(obj.id+"ListDiv");
theListArray=eval(obj.id+"ListArray");
theComboxObj=obj;
theListDiv.style.visibility="visible";
//adjustListDivScroll();
}
function AC_OnBlur(obj)
{
if(obj==null) obj=event.srcElement;
if(theListDiv.contains(document.activeElement)) obj.focus();
else theListDiv.style.visibility="hidden";
}
function AC_OnPropertyChange(obj)
{
if(obj==null) obj=event.srcElement;
theListDiv=eval(obj.id+"ListDiv");
if(theListDiv==null) return ;
theListArray=eval(obj.id+"ListArray");
var objValue=obj.value;
if(objValue.length==0){
theListDiv.innerHTML="";
theListDiv.selectedIndex=-1;
theListDiv.selectedItemIndex=-1;
return;
}
var objValueHtml=htmlEncode(objValue);
theListDiv.selectedIndex=-1;
var theLastVisibleIndex=0
var tempStr=new Array();
var numOfVisibleItems=0;
for(theLastVisibleIndex=0;theLastVisibleIndex<theListArray.length;theLastVisibleIndex++)
{
if(theListArray[theLastVisibleIndex].indexOf(objValue)==0)
{
if(numOfVisibleItems==13){
tempStr[numOfVisibleItems]="<DIV class=ac_menuitem value="+theLastVisibleIndex+" id=virtualMoreItems itemIndex="+numOfVisibleItems+"><b>...More...</b></DIV>";
numOfVisibleItems++;
break;
}
else{
tempStr[numOfVisibleItems]="<DIV class=ac_menuitem value="+theLastVisibleIndex+" itemIndex="+numOfVisibleItems+"><b>"+objValueHtml+"</b>"+htmlEncode(theListArray[theLastVisibleIndex].substr(objValue.length))+"</DIV>";
numOfVisibleItems++;
}
}
}
theListDiv.innerHTML=tempStr.join("");
if(numOfVisibleItems>0)
{
theListDiv.selectedIndex=theListDiv.children[0].value;
theListDiv.selectedItemIndex=0;
theListDiv.children[0].className="ac_menuitem_selected";
adjustListDivScroll();
}
else{
theListDiv.selectedIndex=-1;
theListDiv.selectedItemIndex=-1;
}
}
function AC_OnKeyDown(obj)
{
if(theListDiv==null) return ;
if(obj==null) obj=event.srcElement;
var keyCode=event.keyCode;
if(keyCode==AC_ENTER) keyCode=event.keyCode=AC_TAB;
if(keyCode==AC_TAB && theListDiv.selectedIndex!=-1)
{
if(obj.value!=theListArray[theListDiv.selectedIndex]) obj.value=theListArray[theListDiv.selectedIndex];
return ;
}
if(keyCode==AC_UP_ARROW && theListDiv.selectedItemIndex>0)
{
theListDiv.children[theListDiv.selectedItemIndex].className="ac_menuitem";
theListDiv.selectedItemIndex=theListDiv.selectedItemIndex*1-1;
theListDiv.selectedIndex=theListDiv.children[theListDiv.selectedItemIndex].value;
theListDiv.children[theListDiv.selectedItemIndex].className="ac_menuitem_selected";
adjustListDivScroll();
}
if(keyCode==AC_DOWN_ARROW && theListDiv.selectedItemIndex<theListDiv.children.length-1)
{
theListDiv.children[theListDiv.selectedItemIndex].className="ac_menuitem";
theListDiv.selectedItemIndex=theListDiv.selectedItemIndex*1+1;
theListDiv.selectedIndex=theListDiv.children[theListDiv.selectedItemIndex];
theListDiv.children[theListDiv.selectedItemIndex].className="ac_menuitem_selected";
adjustListDivScroll();
}
}
function htmlEncode(str)
{
if(str==null) return "";
str=str.replace(/</ig,"<")
str=str.replace(/>/ig,">");
str=str.replace(/"/ig,""");
return str;
}
function scrollListDivFun()
{
var virtualMoreItemsObj=theListDiv.children["virtualMoreItems"];
if(virtualMoreItemsObj==null) return;
var theLastVisibleIndex=virtualMoreItemsObj.value*1;
var objValue=theComboxObj.value;
var objValueHtml=htmlEncode(objValue);
var tempStr=new Array();
var numOfVisibleItems=virtualMoreItemsObj.itemIndex*1;
for(;theLastVisibleIndex<theListArray.length;theLastVisibleIndex++)
{
if(theListArray[theLastVisibleIndex].indexOf(objValue)==0)
{
if(numOfVisibleItems==203){
tempStr[numOfVisibleItems]="<DIV class=ac_menuitem value="+theLastVisibleIndex+" itemIndex="+numOfVisibleItems+" onmousedown='replaceThisWithAllLeftItems(this);'><b>...Click to show all items...</b></DIV>";
numOfVisibleItems++;
break;
}
else{
tempStr[numOfVisibleItems]="<DIV class=ac_menuitem value="+theLastVisibleIndex+" itemIndex="+numOfVisibleItems+"><b>"+objValueHtml+"</b>"+htmlEncode(theListArray[theLastVisibleIndex].substr(objValue.length))+"</DIV>";
numOfVisibleItems++;
}
}
}
virtualMoreItemsObj.outerHTML=tempStr.join("");
}
function replaceThisWithAllLeftItems(obj)
{
var virtualMoreItemsObj=obj;
if(virtualMoreItemsObj==null) return;
var theLastVisibleIndex=virtualMoreItemsObj.value*1;
var objValue=theComboxObj.value;
var objValueHtml=htmlEncode(objValue);
var tempStr=new Array();
var numOfVisibleItems=virtualMoreItemsObj.itemIndex*1;;
for(;theLastVisibleIndex<theListArray.length;theLastVisibleIndex++)
{
if(theListArray[theLastVisibleIndex].indexOf(objValue)==0)
{
tempStr[numOfVisibleItems]="<DIV class=ac_menuitem value="+theLastVisibleIndex+" itemIndex="+numOfVisibleItems+"><b>"+objValueHtml+"</b>"+htmlEncode(theListArray[theLastVisibleIndex].substr(objValue.length))+"</DIV>";
numOfVisibleItems++;
}
}
virtualMoreItemsObj.outerHTML=tempStr.join("");
event.cancelBubble=true;
}
function mouseOverListDivFun(event)
{
if(event.toElement!=theListDiv) event.toElement.style.backgroundColor="#E6E6E6";
}
function mouseOutListDivFun(event)
{
if(event.fromElement!=theListDiv) event.fromElement.style.backgroundColor="";
}
function mouseDownListDivFun(event)
{
var selectedStr="";
if(event.srcElement==theListDiv) return;
else if(event.srcElement.tagName=="B") selectedStr=theListArray[event.srcElement.parentElement.value] ;
else selectedStr=theListArray[event.srcElement.value];
if(theComboxObj.value!=selectedStr)theComboxObj.value=selectedStr;
theComboxObj.blur();
}
function adjustListDivScroll()
{
if ( theListDiv==null || theListDiv.selectedItemIndex==-1 || theListDiv.children.length==0 ) return ;
var i=theListDiv.selectedItemIndex;
if((theListDiv.children[i].offsetTop<theListDiv.scrollTop)||(theListDiv.children[i].offsetTop>theListDiv.scrollTop+200))
theListDiv.children[i].scrollIntoView();
}
var AC_ENTER = 13; // make the selection
var AC_UP_ARROW = 38; // move the drop down list selection up by one
var AC_DOWN_ARROW = 40; // move the drop down list selection down by one
var theListDiv;
var theListArray;
var theComboxObj;
onload=OnLoad
function OnLoad()
{
setTimeout("Initialize()", 100);
}
function Initialize()
{
AddListDivFun(document.all.tofield);
//AddListDivFun(document.all.ccfield);
}
function AddListDivFun(obj)
{
theListArray=eval(obj.id+"ListArray");
var tempStr=new Array();
var tempI=0;
tempStr[tempI++]='<DIV style="position:relative;visibility:hidden">'
+'<DIV class=ac_menu id="'+obj.id+'ListDiv" style="FONT-SIZE: 0.9em; Z-INDEX: 1; visibility:hidden; POSITION: absolute;OVERFLOW-Y:auto; WIDTH:'+obj.offsetWidth+'; " '
+'onmouseover="mouseOverListDivFun(event)" onmouseout="mouseOutListDivFun(event);" onmousedown="mouseDownListDivFun(event);" onscroll="scrollListDivFun();">';
tempStr[tempI++]="</DIV></DIV>";
obj.insertAdjacentHTML("afterEnd",tempStr.join(""));
theListDiv=eval(obj.id+"ListDiv");
obj.onfocus=AC_OnFocus;
obj.onblur=AC_OnBlur;
obj.onkeydown=AC_OnKeyDown;
obj.autoComplete="off";
obj.onpropertychange=AC_OnPropertyChange;
}
function AC_OnFocus(obj)
{
if(obj==null) obj=event.srcElement;
theListDiv=eval(obj.id+"ListDiv");
theListArray=eval(obj.id+"ListArray");
theComboxObj=obj;
theListDiv.style.visibility="visible";
//adjustListDivScroll();
}
function AC_OnBlur(obj)
{
if(obj==null) obj=event.srcElement;
if(theListDiv.contains(document.activeElement)) obj.focus();
else theListDiv.style.visibility="hidden";
}
function AC_OnPropertyChange(obj)
{
if(obj==null) obj=event.srcElement;
theListDiv=eval(obj.id+"ListDiv");
if(theListDiv==null) return ;
theListArray=eval(obj.id+"ListArray");
var objValue=obj.value;
if(objValue.length==0){
theListDiv.innerHTML="";
theListDiv.selectedIndex=-1;
theListDiv.selectedItemIndex=-1;
return;
}
var objValueHtml=htmlEncode(objValue);
theListDiv.selectedIndex=-1;
var theLastVisibleIndex=0
var tempStr=new Array();
var numOfVisibleItems=0;
for(theLastVisibleIndex=0;theLastVisibleIndex<theListArray.length;theLastVisibleIndex++)
{
if(theListArray[theLastVisibleIndex].indexOf(objValue)==0)
{
if(numOfVisibleItems==13){
tempStr[numOfVisibleItems]="<DIV class=ac_menuitem value="+theLastVisibleIndex+" id=virtualMoreItems itemIndex="+numOfVisibleItems+"><b>...More...</b></DIV>";
numOfVisibleItems++;
break;
}
else{
tempStr[numOfVisibleItems]="<DIV class=ac_menuitem value="+theLastVisibleIndex+" itemIndex="+numOfVisibleItems+"><b>"+objValueHtml+"</b>"+htmlEncode(theListArray[theLastVisibleIndex].substr(objValue.length))+"</DIV>";
numOfVisibleItems++;
}
}
}
theListDiv.innerHTML=tempStr.join("");
if(numOfVisibleItems>0)
{
theListDiv.selectedIndex=theListDiv.children[0].value;
theListDiv.selectedItemIndex=0;
theListDiv.children[0].className="ac_menuitem_selected";
adjustListDivScroll();
}
else{
theListDiv.selectedIndex=-1;
theListDiv.selectedItemIndex=-1;
}
}
function AC_OnKeyDown(obj)
{
if(theListDiv==null) return ;
if(obj==null) obj=event.srcElement;
var keyCode=event.keyCode;
if(keyCode==AC_ENTER) keyCode=event.keyCode=AC_TAB;
if(keyCode==AC_TAB && theListDiv.selectedIndex!=-1)
{
if(obj.value!=theListArray[theListDiv.selectedIndex]) obj.value=theListArray[theListDiv.selectedIndex];
return ;
}
if(keyCode==AC_UP_ARROW && theListDiv.selectedItemIndex>0)
{
theListDiv.children[theListDiv.selectedItemIndex].className="ac_menuitem";
theListDiv.selectedItemIndex=theListDiv.selectedItemIndex*1-1;
theListDiv.selectedIndex=theListDiv.children[theListDiv.selectedItemIndex].value;
theListDiv.children[theListDiv.selectedItemIndex].className="ac_menuitem_selected";
adjustListDivScroll();
}
if(keyCode==AC_DOWN_ARROW && theListDiv.selectedItemIndex<theListDiv.children.length-1)
{
theListDiv.children[theListDiv.selectedItemIndex].className="ac_menuitem";
theListDiv.selectedItemIndex=theListDiv.selectedItemIndex*1+1;
theListDiv.selectedIndex=theListDiv.children[theListDiv.selectedItemIndex];
theListDiv.children[theListDiv.selectedItemIndex].className="ac_menuitem_selected";
adjustListDivScroll();
}
}
function htmlEncode(str)
{
if(str==null) return "";
str=str.replace(/</ig,"<")
str=str.replace(/>/ig,">");
str=str.replace(/"/ig,""");
return str;
}
function scrollListDivFun()
{
var virtualMoreItemsObj=theListDiv.children["virtualMoreItems"];
if(virtualMoreItemsObj==null) return;
var theLastVisibleIndex=virtualMoreItemsObj.value*1;
var objValue=theComboxObj.value;
var objValueHtml=htmlEncode(objValue);
var tempStr=new Array();
var numOfVisibleItems=virtualMoreItemsObj.itemIndex*1;
for(;theLastVisibleIndex<theListArray.length;theLastVisibleIndex++)
{
if(theListArray[theLastVisibleIndex].indexOf(objValue)==0)
{
if(numOfVisibleItems==203){
tempStr[numOfVisibleItems]="<DIV class=ac_menuitem value="+theLastVisibleIndex+" itemIndex="+numOfVisibleItems+" onmousedown='replaceThisWithAllLeftItems(this);'><b>...Click to show all items...</b></DIV>";
numOfVisibleItems++;
break;
}
else{
tempStr[numOfVisibleItems]="<DIV class=ac_menuitem value="+theLastVisibleIndex+" itemIndex="+numOfVisibleItems+"><b>"+objValueHtml+"</b>"+htmlEncode(theListArray[theLastVisibleIndex].substr(objValue.length))+"</DIV>";
numOfVisibleItems++;
}
}
}
virtualMoreItemsObj.outerHTML=tempStr.join("");
}
function replaceThisWithAllLeftItems(obj)
{
var virtualMoreItemsObj=obj;
if(virtualMoreItemsObj==null) return;
var theLastVisibleIndex=virtualMoreItemsObj.value*1;
var objValue=theComboxObj.value;
var objValueHtml=htmlEncode(objValue);
var tempStr=new Array();
var numOfVisibleItems=virtualMoreItemsObj.itemIndex*1;;
for(;theLastVisibleIndex<theListArray.length;theLastVisibleIndex++)
{
if(theListArray[theLastVisibleIndex].indexOf(objValue)==0)
{
tempStr[numOfVisibleItems]="<DIV class=ac_menuitem value="+theLastVisibleIndex+" itemIndex="+numOfVisibleItems+"><b>"+objValueHtml+"</b>"+htmlEncode(theListArray[theLastVisibleIndex].substr(objValue.length))+"</DIV>";
numOfVisibleItems++;
}
}
virtualMoreItemsObj.outerHTML=tempStr.join("");
event.cancelBubble=true;
}
function mouseOverListDivFun(event)
{
if(event.toElement!=theListDiv) event.toElement.style.backgroundColor="#E6E6E6";
}
function mouseOutListDivFun(event)
{
if(event.fromElement!=theListDiv) event.fromElement.style.backgroundColor="";
}
function mouseDownListDivFun(event)
{
var selectedStr="";
if(event.srcElement==theListDiv) return;
else if(event.srcElement.tagName=="B") selectedStr=theListArray[event.srcElement.parentElement.value] ;
else selectedStr=theListArray[event.srcElement.value];
if(theComboxObj.value!=selectedStr)theComboxObj.value=selectedStr;
theComboxObj.blur();
}
function adjustListDivScroll()
{
if ( theListDiv==null || theListDiv.selectedItemIndex==-1 || theListDiv.children.length==0 ) return ;
var i=theListDiv.selectedItemIndex;
if((theListDiv.children[i].offsetTop<theListDiv.scrollTop)||(theListDiv.children[i].offsetTop>theListDiv.scrollTop+200))
theListDiv.children[i].scrollIntoView();
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货