Ajax自动匹配(类似Google Suggest的功能)

Js的文件

Ajax自动匹配(类似Google Suggest的功能) //  JScript 文件
Ajax自动匹配(类似Google Suggest的功能)

Ajax自动匹配(类似Google Suggest的功能)  
var  queryField;
Ajax自动匹配(类似Google Suggest的功能)     
var  divName;
Ajax自动匹配(类似Google Suggest的功能)    
var  listName;
Ajax自动匹配(类似Google Suggest的功能)    
var  lastVal  =   "" ;
Ajax自动匹配(类似Google Suggest的功能)    
var  val  =   "" ; 
Ajax自动匹配(类似Google Suggest的功能)    
var  selectListName;
Ajax自动匹配(类似Google Suggest的功能)    
var  clearFlag = 0 ;
Ajax自动匹配(类似Google Suggest的功能)    
var  hiddenFlag = 0 ;
Ajax自动匹配(类似Google Suggest的功能)    
var  moveToX;
Ajax自动匹配(类似Google Suggest的功能)    
var  moveToY;
Ajax自动匹配(类似Google Suggest的功能)    
var  pos;
Ajax自动匹配(类似Google Suggest的功能)    
var  NotDo = 1 ;
Ajax自动匹配(类似Google Suggest的功能)    
var  rng;
Ajax自动匹配(类似Google Suggest的功能)    
// 循环调用函数
Ajax自动匹配(类似Google Suggest的功能)
     function  mainLoop()
Ajax自动匹配(类似Google Suggest的功能)    
{
Ajax自动匹配(类似Google Suggest的功能)       
Ajax自动匹配(类似Google Suggest的功能)        val
=escape(queryField.value);                
Ajax自动匹配(类似Google Suggest的功能)        
if(queryField.value.charAt(queryField.value.length-1)==' '
Ajax自动匹配(类似Google Suggest的功能)        
{
Ajax自动匹配(类似Google Suggest的功能)            queryField.value
=queryField.value.trim();      //自动清楚最后一个空格。 
Ajax自动匹配(类似Google Suggest的功能)
         }
      
Ajax自动匹配(类似Google Suggest的功能)         
if(val.length<1 || hiddenFlag)//查询框为空时不查询
Ajax自动匹配(类似Google Suggest的功能)
            HiddenDiv(); 
Ajax自动匹配(类似Google Suggest的功能)          
else if(lastVal!=val && !hiddenFlag)//上次的值和本次的值不同并且没有隐藏标志
Ajax自动匹配(类似Google Suggest的功能)
          {
Ajax自动匹配(类似Google Suggest的功能)           
Ajax自动匹配(类似Google Suggest的功能)           queryField.value
=queryField.value.replace(//g,",");
Ajax自动匹配(类似Google Suggest的功能)
//           var htmlstr=queryField.innerHTML;
Ajax自动匹配(类似Google Suggest的功能)//
           htmlstr=htmlstr.replace(/(^*\n*)|(^*\r*)/g,"");//替换回车
Ajax自动匹配(类似Google Suggest的功能)//
           queryField.innerHTML=htmlstr;
Ajax自动匹配(类似Google Suggest的功能)
           //alert(htmlstr);
Ajax自动匹配(类似Google Suggest的功能)
           //queryField.value=queryField.value.replace(/(^*\n*)|(^*\r*)/g,"");          
Ajax自动匹配(类似Google Suggest的功能)
            var response=Bussiness.ArchivesBLL.GetArrayUserName(queryField.value.trim());
Ajax自动匹配(类似Google Suggest的功能)            showQueryDiv(response.value);
Ajax自动匹配(类似Google Suggest的功能)          }

Ajax自动匹配(类似Google Suggest的功能)           lastVal
=val;          
Ajax自动匹配(类似Google Suggest的功能)         window.setTimeout(
'mainLoop()',100);
Ajax自动匹配(类似Google Suggest的功能)         
return true;       
Ajax自动匹配(类似Google Suggest的功能)    }
  
Ajax自动匹配(类似Google Suggest的功能)
// 初始化梆定textbox的事件
Ajax自动匹配(类似Google Suggest的功能)
function  InitQueryCode( QueryField2,ListName2,DivName2)
Ajax自动匹配(类似Google Suggest的功能) 
{    
Ajax自动匹配(类似Google Suggest的功能)       lastVal
="";
Ajax自动匹配(类似Google Suggest的功能)       val
="";
Ajax自动匹配(类似Google Suggest的功能)       divName
=null;     
Ajax自动匹配(类似Google Suggest的功能)     queryField 
= QueryField2;//document.getElementById(QueryField2);
Ajax自动匹配(类似Google Suggest的功能)
     pos=GetObjPos(queryField);
Ajax自动匹配(类似Google Suggest的功能)     listName
=document.getElementById(ListName2);
Ajax自动匹配(类似Google Suggest的功能)     divName
=document.getElementById(DivName2);
Ajax自动匹配(类似Google Suggest的功能)     queryField.autocomplete 
= "off";
Ajax自动匹配(类似Google Suggest的功能)     queryField.onblur
=HiddenDiv;
Ajax自动匹配(类似Google Suggest的功能)     queryField.onkeydown 
= keypressHandler;
Ajax自动匹配(类似Google Suggest的功能)     
//listName.onchange=SelectChange;    
Ajax自动匹配(类似Google Suggest的功能)
     listName.onclick=SelectChange;
Ajax自动匹配(类似Google Suggest的功能)      selectListName
=ListName2;     
Ajax自动匹配(类似Google Suggest的功能)     
// moveToX=event.clientY+15;//pos.x+queryField.style.height;// 
Ajax自动匹配(类似Google Suggest的功能)
      //MoveToY=event.clientX-15;
Ajax自动匹配(类似Google Suggest的功能)
      if(queryField.name=="TextBoxAttendMan")
Ajax自动匹配(类似Google Suggest的功能)        moveToX
=pos.y+50;//event.clientY+20;
Ajax自动匹配(类似Google Suggest的功能)
      else
Ajax自动匹配(类似Google Suggest的功能)         moveToX
=pos.y+20;
Ajax自动匹配(类似Google Suggest的功能)      moveToY
=pos.x;
Ajax自动匹配(类似Google Suggest的功能)     
// alert("x:"+pos.x+" y:"+pos.y);
Ajax自动匹配(类似Google Suggest的功能)
       RedirectDiv();
Ajax自动匹配(类似Google Suggest的功能)      divName.style.visibility
="hidden";
Ajax自动匹配(类似Google Suggest的功能)     
//document.all(QueryField2).focus(); 
Ajax自动匹配(类似Google Suggest的功能)
     //queryField.focus();
Ajax自动匹配(类似Google Suggest的功能)
     //移动光标到文字的末尾
Ajax自动匹配(类似Google Suggest的功能)//
      rng = event.srcElement.createTextRange(); 
Ajax自动匹配(类似Google Suggest的功能)//
      rng.moveToPoint(event.x,event.y); 
Ajax自动匹配(类似Google Suggest的功能)
        setTimeout("mainLoop()",100);
Ajax自动匹配(类似Google Suggest的功能)}

Ajax自动匹配(类似Google Suggest的功能)
function  RedirectDiv()
Ajax自动匹配(类似Google Suggest的功能)
{
Ajax自动匹配(类似Google Suggest的功能)    divName.style.top
=moveToX;
Ajax自动匹配(类似Google Suggest的功能)   
// divName.style.left=divName.style.left-5;
Ajax自动匹配(类似Google Suggest的功能)
    divName.style.left=moveToY;  
Ajax自动匹配(类似Google Suggest的功能)}

Ajax自动匹配(类似Google Suggest的功能)
// 将记录插入到list中,并显示
Ajax自动匹配(类似Google Suggest的功能)
function  showQueryDiv(ResultArray)
Ajax自动匹配(类似Google Suggest的功能)

Ajax自动匹配(类似Google Suggest的功能)    
if(ResultArray.length>0)
Ajax自动匹配(类似Google Suggest的功能)    
{          
Ajax自动匹配(类似Google Suggest的功能)        
var index=listName.selectedIndex;
Ajax自动匹配(类似Google Suggest的功能)        
for(var i=listName.length;i>=0;i--)
Ajax自动匹配(类似Google Suggest的功能)                listName.remove(i); 
Ajax自动匹配(类似Google Suggest的功能)        
var i=0;
Ajax自动匹配(类似Google Suggest的功能)        divName.style.visibility
="visible";
Ajax自动匹配(类似Google Suggest的功能)        
for(i=0;i<ResultArray.length;i++)
Ajax自动匹配(类似Google Suggest的功能)        
{
Ajax自动匹配(类似Google Suggest的功能)            listName[i]
=new Option(ResultArray[i],ResultArray[i]);          
Ajax自动匹配(类似Google Suggest的功能)        }
  
Ajax自动匹配(类似Google Suggest的功能)        
if(listName.lenth-1>=index)
Ajax自动匹配(类似Google Suggest的功能)            listName[index].selected
=true;
Ajax自动匹配(类似Google Suggest的功能)        
else
Ajax自动匹配(类似Google Suggest的功能)            listName[
0].selected=true;
Ajax自动匹配(类似Google Suggest的功能)       
// divName.style.height="95px";        
Ajax自动匹配(类似Google Suggest的功能)
    }
    
Ajax自动匹配(类似Google Suggest的功能)    
else
Ajax自动匹配(类似Google Suggest的功能)          HiddenDiv();
Ajax自动匹配(类似Google Suggest的功能)          
Ajax自动匹配(类似Google Suggest的功能)  
Ajax自动匹配(类似Google Suggest的功能)   
Ajax自动匹配(类似Google Suggest的功能)}

Ajax自动匹配(类似Google Suggest的功能)
Ajax自动匹配(类似Google Suggest的功能)
function  CPos(x, y)
Ajax自动匹配(类似Google Suggest的功能)
{
Ajax自动匹配(类似Google Suggest的功能)    
this.x = x;
Ajax自动匹配(类似Google Suggest的功能)    
this.y = y;
Ajax自动匹配(类似Google Suggest的功能)}

Ajax自动匹配(类似Google Suggest的功能)
// 获取控件的位置
Ajax自动匹配(类似Google Suggest的功能)
function  GetObjPos(ATarget)
Ajax自动匹配(类似Google Suggest的功能)
{
Ajax自动匹配(类似Google Suggest的功能)    
var target = ATarget;
Ajax自动匹配(类似Google Suggest的功能)    
var pos = new CPos(target.offsetLeft, target.offsetTop);
Ajax自动匹配(类似Google Suggest的功能)    
Ajax自动匹配(类似Google Suggest的功能)    
var target = target.offsetParent;
Ajax自动匹配(类似Google Suggest的功能)    
while (target)
Ajax自动匹配(类似Google Suggest的功能)    
{
Ajax自动匹配(类似Google Suggest的功能)        pos.x 
+= target.offsetLeft;
Ajax自动匹配(类似Google Suggest的功能)        pos.y 
+= target.offsetTop;
Ajax自动匹配(类似Google Suggest的功能)        
Ajax自动匹配(类似Google Suggest的功能)        target 
= target.offsetParent
Ajax自动匹配(类似Google Suggest的功能)    }

Ajax自动匹配(类似Google Suggest的功能)    
Ajax自动匹配(类似Google Suggest的功能)    
return pos;
Ajax自动匹配(类似Google Suggest的功能)}

Ajax自动匹配(类似Google Suggest的功能)
Ajax自动匹配(类似Google Suggest的功能)
function  SelectChange()
Ajax自动匹配(类似Google Suggest的功能)
{//选择了记录
Ajax自动匹配(类似Google Suggest的功能)//
    var spiltstr="";
Ajax自动匹配(类似Google Suggest的功能)
    var str=listName.value;
Ajax自动匹配(类似Google Suggest的功能)
//     if(str.indexOf("|")>0)
Ajax自动匹配(类似Google Suggest的功能)//
        {
Ajax自动匹配(类似Google Suggest的功能)//
           spiltstr=str.substring(0,str.indexOf("|"));
Ajax自动匹配(类似Google Suggest的功能)//
        }
Ajax自动匹配(类似Google Suggest的功能)//
    queryField.value = spiltstr;  
Ajax自动匹配(类似Google Suggest的功能)
var temp=queryField.value;
Ajax自动匹配(类似Google Suggest的功能)    temp
=temp.replace(//g,",");
Ajax自动匹配(类似Google Suggest的功能)    
if(temp.lastIndexOf(",")>=0)
Ajax自动匹配(类似Google Suggest的功能)    
{
Ajax自动匹配(类似Google Suggest的功能)        temp
=temp.substring(0,temp.lastIndexOf(",")+1);
Ajax自动匹配(类似Google Suggest的功能)        queryField.value
=temp+str+",";
Ajax自动匹配(类似Google Suggest的功能)    }

Ajax自动匹配(类似Google Suggest的功能)    
else
Ajax自动匹配(类似Google Suggest的功能)        queryField.value
=str+",";
Ajax自动匹配(类似Google Suggest的功能)    
//queryField.value=queryField.value+str;
Ajax自动匹配(类似Google Suggest的功能)
    queryField.focus();
Ajax自动匹配(类似Google Suggest的功能)     HiddenDiv();
Ajax自动匹配(类似Google Suggest的功能)     hiddenFlag
=1;//隐藏标志    
Ajax自动匹配(类似Google Suggest的功能)
 
Ajax自动匹配(类似Google Suggest的功能)}

Ajax自动匹配(类似Google Suggest的功能)
// 隐藏div
Ajax自动匹配(类似Google Suggest的功能)
  function  HiddenDiv()
Ajax自动匹配(类似Google Suggest的功能) 
{   
Ajax自动匹配(类似Google Suggest的功能)    divName.style.visibility
="hidden";        
Ajax自动匹配(类似Google Suggest的功能) }

Ajax自动匹配(类似Google Suggest的功能) 
// 按|分离
Ajax自动匹配(类似Google Suggest的功能)
  function  ReplaceStr(str)
Ajax自动匹配(类似Google Suggest的功能) 
{
Ajax自动匹配(类似Google Suggest的功能)    
if(str.indexOf("|")>0)
Ajax自动匹配(类似Google Suggest的功能)        
{
Ajax自动匹配(类似Google Suggest的功能)           str
=str.substring(0,str.indexOf("|"));
Ajax自动匹配(类似Google Suggest的功能)        }

Ajax自动匹配(类似Google Suggest的功能)    
return str;
Ajax自动匹配(类似Google Suggest的功能) }

Ajax自动匹配(类似Google Suggest的功能) 
// 判断是否是数字
Ajax自动匹配(类似Google Suggest的功能)
  function  IsNumeric(sText)
Ajax自动匹配(类似Google Suggest的功能)
{
Ajax自动匹配(类似Google Suggest的功能)   
var ValidChars = "0123456789";
Ajax自动匹配(类似Google Suggest的功能)   
var IsNumber=true;
Ajax自动匹配(类似Google Suggest的功能)   
var Char; 
Ajax自动匹配(类似Google Suggest的功能)   
for (i = 0; i < sText.length && IsNumber == true; i++
Ajax自动匹配(类似Google Suggest的功能)      

Ajax自动匹配(类似Google Suggest的功能)      Char 
= sText.charAt(i); 
Ajax自动匹配(类似Google Suggest的功能)      
if (ValidChars.indexOf(Char) == -1
Ajax自动匹配(类似Google Suggest的功能)         
{
Ajax自动匹配(类似Google Suggest的功能)         IsNumber 
= false;
Ajax自动匹配(类似Google Suggest的功能)         }

Ajax自动匹配(类似Google Suggest的功能)      }

Ajax自动匹配(类似Google Suggest的功能)   
return IsNumber;   
Ajax自动匹配(类似Google Suggest的功能)}

Ajax自动匹配(类似Google Suggest的功能)
Ajax自动匹配(类似Google Suggest的功能)
// 输入框onkeydown的响应函数.
Ajax自动匹配(类似Google Suggest的功能)
function  keypressHandler()
Ajax自动匹配(类似Google Suggest的功能)
{
Ajax自动匹配(类似Google Suggest的功能)
Ajax自动匹配(类似Google Suggest的功能)    hiddenFlag
=0;//不隐藏
Ajax自动匹配(类似Google Suggest的功能)
    //lastVal="";//清除上次的记录
Ajax自动匹配(类似Google Suggest的功能)
    var key=event.keyCode;
Ajax自动匹配(类似Google Suggest的功能)    
var KEYUP=38;
Ajax自动匹配(类似Google Suggest的功能)    
var KEYDOWN=40;
Ajax自动匹配(类似Google Suggest的功能)    
var KEYENTER=13;
Ajax自动匹配(类似Google Suggest的功能)    
var KEYTAB=9;
Ajax自动匹配(类似Google Suggest的功能)    
var KEYBLANK=32;
Ajax自动匹配(类似Google Suggest的功能)  
Ajax自动匹配(类似Google Suggest的功能)    
//alert(key);
Ajax自动匹配(类似Google Suggest的功能)
    if(key==KEYDOWN && divName.style.visibility!="hidden" && listName.length>0)
Ajax自动匹配(类似Google Suggest的功能)    
{
Ajax自动匹配(类似Google Suggest的功能)        
var index=listName.selectedIndex;
Ajax自动匹配(类似Google Suggest的功能)        
Ajax自动匹配(类似Google Suggest的功能)       
// alert(index+"  "+listName.length);
Ajax自动匹配(类似Google Suggest的功能)
        if(index>=listName.length-1)
Ajax自动匹配(类似Google Suggest的功能)            listName.selectedIndex
=0;
Ajax自动匹配(类似Google Suggest的功能)        
else
Ajax自动匹配(类似Google Suggest的功能)            listName.selectedIndex
=index+1;
Ajax自动匹配(类似Google Suggest的功能)    }

Ajax自动匹配(类似Google Suggest的功能)    
else
Ajax自动匹配(类似Google Suggest的功能)          
if(key==KEYUP && divName.style.visibility!="hidden" && listName.length>0)
Ajax自动匹配(类似Google Suggest的功能)    
{
Ajax自动匹配(类似Google Suggest的功能)        
var index=listName.selectedIndex;
Ajax自动匹配(类似Google Suggest的功能)        
Ajax自动匹配(类似Google Suggest的功能)        
if(index==0)
Ajax自动匹配(类似Google Suggest的功能)            listName.selectedIndex
=listName.length-1;
Ajax自动匹配(类似Google Suggest的功能)        
else
Ajax自动匹配(类似Google Suggest的功能)            listName.selectedIndex
=index-1;
Ajax自动匹配(类似Google Suggest的功能)    }

Ajax自动匹配(类似Google Suggest的功能)    
else 
Ajax自动匹配(类似Google Suggest的功能)         
if((key==KEYENTER || key==KEYBLANK || key==KEYTAB) && divName.style.visibility!="hidden" && listName.length>0
Ajax自动匹配(类似Google Suggest的功能)         
{
Ajax自动匹配(类似Google Suggest的功能)        
Ajax自动匹配(类似Google Suggest的功能)            SelectChange();           
Ajax自动匹配(类似Google Suggest的功能)            event.keyCode
=-1;      
Ajax自动匹配(类似Google Suggest的功能)            
// queryField.focus();      
Ajax自动匹配(类似Google Suggest的功能)
         }

Ajax自动匹配(类似Google Suggest的功能)    
else
Ajax自动匹配(类似Google Suggest的功能)        
{
Ajax自动匹配(类似Google Suggest的功能)           
// mainLoop();
Ajax自动匹配(类似Google Suggest的功能)
           //event.keyCode=null;
Ajax自动匹配(类似Google Suggest的功能)
        }

Ajax自动匹配(类似Google Suggest的功能) }
 
Ajax自动匹配(类似Google Suggest的功能)
Ajax自动匹配(类似Google Suggest的功能)

调用方式
Ajax自动匹配(类似Google Suggest的功能)   < asp:TextBox ID = " TextOrganiger "  runat = " server "   onfocus = " InitQueryCode(this,'ManList','ManDiv') "   ></ asp:TextBox >& nbsp;
Ajax自动匹配(类似Google Suggest的功能)                                
< div id = " ManDiv "   style = "  visibility:hidden; z-index: 101; left: 162px; width: 122px; position: absolute; top: 216px;
Ajax自动匹配(类似Google Suggest的功能)
                                   height: 115px " >
Ajax自动匹配(类似Google Suggest的功能)
                                   < select id = " ManList "  name = " ManList "  size = 8  style = " width: 122px; height: 111px; " >
Ajax自动匹配(类似Google Suggest的功能)                                
< option selected = " selected " ></ option >
Ajax自动匹配(类似Google Suggest的功能)                              
</ select >
Ajax自动匹配(类似Google Suggest的功能)                               
</ div >       

你可能感兴趣的:(suggest)