类似google提示窗口

<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" >
< html >
< head >
< meta  http-equiv ="Content-Type"  content ="text/html; charset=gb2312" >
< title > 无标题文档 </ title >
< script  language ="JavaScript" >
var  autolist  =  [ " asdasdf " , " aasd " , " aidanofiuads " , " asdfasdf " , " argsgsr " , " taeta " ];


function  JSearcher(elementId,count){    
    
var  g;
    
var  rect;
    
var  currentRow =- 1 ;
    
var  Num  =  count;
    
    
    
    g 
=  document.getElementById(elementId);
    rect 
=  g.getBoundingClientRect();

/* 初始化工作 */     
    
/* 创建容器 */
    
var  oo  =  document.createElement( " div " );
    oo.style.left 
=  rect.left;
    oo.style.top 
=  rect.top + 20 ;
    
// oo.style.backgroundColor = "#FF0000";
    oo.style.position  =   " absolute " ;
    oo.style.border 
=   " 1px solid black " ;
    oo.style.width
= rect.right - rect.left;
    oo.style.display
= " none " ;
    
    
/* 创建结果表格 */
    rtTable 
=  document.createElement( " table " );
    rtTable.cellpadding 
=   0 ;
    rtTable.cellspacing 
=   0 ;
    rtTable.border 
=   0 ;
    rtTable.style.width 
=  rect.right - rect.left;
    
    
for ( var  i = 0 ;i < count;i ++ ){    
        rtTR 
=  rtTable.insertRow(rtTable.rows.length);
        rtTR.style.width 
=  rect.right - rect.left;
        rtTD 
=  rtTR.insertCell( 0 );
        rtTD.innerText
= "" ;
        rtTR.style.width 
=  rect.right - rect.left;
        rtTD.onmouseover 
=   function (){
            
var  row  =  window.event.srcElement.parentElement.rowIndex;
            selRow(row);
            currentRow 
=  row;            
        }
        
        rtTD.onmouseout 
=   function (){
            
this .bgColor  = "" ;
        }
        
        rtTD.onclick 
=   function (){
            oo.style.display  
=   " none " ;
        }
    }
    
    
    
    
    g.onkeyup 
=   function (){
        
switch (event.keyCode){
           
case   38 : // up
                currentRow  =  currentRow --   >   0   ?  currentRow :  0 ;
                selRow(currentRow);
                
break ;
           
case   40 : // down                             
                currentRow  =  currentRow ++   <  (Num - 1 ?  currentRow:(Num - 1 );
                selRow(currentRow);
                
break ;
           
case   13 :
                show(
false );
                
break ;
           
default :
                 update();
                 show(
true );
                 
      }
      
    }
    oo.appendChild(rtTable);
    document.body.appendChild(oo);    
    
    

/* 设定选中的项目高亮显示 */     
    
this .selRow  =   function (index){
        
for (i = 0 ;i < Num;i ++ ){
            tdt 
=  rtTable.rows(i).cells( 0 );
            
if (i == index){                
                tdt.bgColor 
= " #00FF00 " ;
                 g.value 
=  tdt.innerText;
            }
else {
                tdt.bgColor
= "" ;            
            }
        }
    }

/* 更新搜索结果 */     
    
this .update  =   function (){
    
        
for (i = 0 ;i < count;i ++ ){
            rtTable.rows(i).style.display
= " none " ;
        }        
        
        Num 
=  autolist.length  <  count  ?  autolist.length : count;
        
for (i = 0 ;i < Num;i ++ ){
            tdt 
=  rtTable.rows(i).style.display = "" ;
            tdt 
=  rtTable.rows(i).cells( 0 );
            tdt.innerText 
=  autolist[i];    
        
        }

        
        
        
     }

/*  显示层 */
    
this .show  =   function (flag){
        
if (flag){
            oo.style.display  
=   "" ;
        }
else {
            oo.style.display  
=   " none " ;
        }
     }

    document.body.onclick 
=   function (){
        show(
false );
    }
    
}
</ script >

</ head >

< body   onLoad ="JSearcher('gg',10);" >

关键字:
< input  type ="text"  name ="gg"    id ="gg"   >



</ body >
</ html >
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值