javascript仿百度输入框提示自动下拉补全


Posted in Javascript onJanuary 07, 2016

本文实例讲解了javascript输入框自动下拉补全操作,仿百度、谷歌搜索框提示,具体内容如下

效果图:

javascript仿百度输入框提示自动下拉补全

javascript仿百度输入框提示自动下拉补全

具体代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
 <TITLE> New Document </TITLE>
 <META NAME="Generator" CONTENT="EditPlus">
 <META NAME="Author" CONTENT="">
 <META NAME="Keywords" CONTENT="">
 <META NAME="Description" CONTENT="">
 <script type="text/javascript" src="jquery.js"></script>
  <script type="text/javascript">
  /*自动下拉补全 zhk */
  var highlightindex=-1;//当前高亮的节点
 $(document).ready(function(){
 var wordInput=$("#word");
 var wordInputOffset=wordInput.offset();
 
  $("#auto").hide().css("border","1px black solid").css("position","absolute")
  .css("top",wordInputOffset.top+wordInput.height()+5+"px")
  .css("left",wordInputOffset.left+"px").width(wordInput.width()+2);
 
 wordInput.keyup(function (event){
 
  var myEvent=event||window.event;
  var keyCode=myEvent.keyCode;
  if(keyCode>=65&&keyCode<=90||keyCode==8||keyCode==46){
 
   var wordText=$("#word").val();
   var autoNode=$("#auto");
   if(wordText!=""){
   
    
    var wordNodes=$("span");
    
    autoNode.html("");
    wordNodes.each(function(i){
     var wordNode=$(this);
     var newDivNode=$("<div>").attr("id",i);
      
     newDivNode.html(wordNode.text()).appendTo(autoNode);
     newDivNode.mouseover(function(){//鼠标进入
      if(highlightindex!=-1){
        $("#auto").children("div").eq(highlightindex)
        .css("background-color","white");
       }
       highlightindex=$(this).attr("id");
       $(this).css("background-color","red");
      })
 
      newDivNode.mouseout(function(){//鼠标移除
       $(this).css("background-color","white");
      
       })
newDivNode.click(function(){//点击
       var comText=$(this).text();
       $("#auto").hide();
     highlightindex=-1;
     $("#word").val(comText);
       })
 
    })
    if(wordNodes.length>0){
     autoNode.show();
    }else{
     autoNode.hide();
     highlightindex=-1;
     }
   
   }else{
   autoNode.hide();
    highlightindex=-1;
    }
 
   }else if(keyCode==38||keyCode==40){
     if(keyCode==38){//向上
      var autoNodes=$("#auto").children("div");
       if(highlightindex!=-1){
        autoNodes.eq(highlightindex).css("background-color","white");
         highlightindex--;
       }else{
        highlightindex=autoNodes.length-1;
       }
       
       if(highlightindex==-1){
        highlightindex=autoNodes.length-1;
       }
       autoNodes.eq(highlightindex).css("background-color","red");
     }
     if(keyCode==40){
      var autoNodes=$("#auto").children("div");
       if(highlightindex!=-1){
        autoNodes.eq(highlightindex).css("background-color","white");
       }
       highlightindex++;
       if(highlightindex==autoNodes.length){
        highlightindex=0;
       }
       autoNodes.eq(highlightindex).css("background-color","red");
     }
   }else if(keyCode==13){
     
    if(highlightindex!=-1){
     var comText=$("#auto").hide().children("div").eq(highlightindex).text();
     highlightindex=-1;
     $("#word").val(comText);
     }else{
      alert("文本框中的【"+$("#word").val()+"】被提交了");
      $("#auto").hide();
       $("#word").get(0).blur();//失去焦点
     }
    }
  });
 
  $("input [type='button']").click(function(){
   alert("文本框中的【"+$("#word").val()+"】被提交了");
  });
 
 
})
</script>
 </HEAD>
 
 <BODY>
 <input type="text" id="word">
<input type="button" value="提交">
<div id="auto"></div>
<p>
<span>aaa</span>
<span>abc</span>
<span>abd</span>
<span>bbc</span>
<span>beb</span>
<span>cer</span>
<span>erd</span>
<span>beg</span>
<p>
 </BODY>
</HTML>

以上就是本文的全部内容,希望对大家学习javascript程序设计有所帮助。

Javascript 相关文章推荐
图片按比例缩放函数
Jun 26 Javascript
javascript动态加载二
Aug 22 Javascript
JSONP之我见
Mar 24 Javascript
jquery实现模拟百分比进度条渐变效果代码
Oct 29 Javascript
js判断手机访问或者PC的几个例子(常用于手机跳转)
Dec 15 Javascript
Eclipse编辑jsp、js文件时卡死现象的解决办法汇总
Feb 02 Javascript
jQuery实现的无限级下拉菜单功能示例
Sep 12 Javascript
解决VUE中document.body.scrollTop为0的问题
Sep 15 Javascript
详谈js的变量提升以及使用方法
Oct 06 Javascript
微信小程序实现笑脸评分功能
Nov 03 Javascript
记一次vue-webpack项目优化实践详解
Feb 17 Javascript
微信小程序利用云函数获取手机号码
Dec 17 Javascript
基于jquery实现表格无刷新分页
Jan 07 #Javascript
js密码强度检测
Jan 07 #Javascript
实例详解JSON数据格式及json格式数据域字符串相互转换
Jan 07 #Javascript
基于JavaScript实现通用tab选项卡(通用性强)
Jan 07 #Javascript
基于JavaScript代码实现兼容各浏览器的设为首页和加入收藏
Jan 07 #Javascript
JavaScript设计模式初探
Jan 07 #Javascript
JavaScript类型系统之Object详解
Jan 07 #Javascript
You might like
php中如何判断一个网页请求是ajax请求还是普通请求
2013/08/10 PHP
php延迟静态绑定实例分析
2015/02/08 PHP
php字符串操作针对负值的判断分析
2016/07/28 PHP
基于PHP实现短信验证码接口(容联运通讯)
2016/09/06 PHP
详谈phpAdmin修改密码后拒绝访问的问题
2017/04/03 PHP
实例讲解通过​PHP创建数据库
2019/01/20 PHP
理解Javascript_10_对象模型
2010/10/16 Javascript
用JS判别浏览器种类以及IE版本的几种方法小结
2011/08/02 Javascript
javascript:void(0)使用探讨
2013/08/27 Javascript
完美兼容IE,chrome,ff的设为首页、加入收藏及保存到桌面js代码
2014/12/17 Javascript
flash+jQuery实现可关闭及重复播放的压顶广告
2015/04/15 Javascript
分享一个插件实现水珠自动下落效果
2016/06/01 Javascript
JavaScript 数组- Array的方法总结(推荐)
2016/07/21 Javascript
利用Node.js编写跨平台的spawn语句详解
2017/02/12 Javascript
Bootstrap常用组件学习(整理)
2017/03/24 Javascript
jQuery+pjax简单示例汇总
2017/04/21 jQuery
javaScript实现滚动条事件详解
2020/03/24 Javascript
基于js中this和event 的区别(详解)
2017/10/24 Javascript
JavaScript错误处理操作实例详解
2019/01/04 Javascript
javascript用defineProperty实现简单的双向绑定方法
2020/04/03 Javascript
[15:39]教你分分钟做大人:龙骑士
2014/10/30 DOTA
[04:47]DOTA2-潍坊风行电子俱乐部探秘
2014/08/08 DOTA
[49:41]NB vs NAVI Supermajor小组赛A组 BO3 第一场 6.2
2018/06/03 DOTA
Python中请使用isinstance()判断变量类型
2014/08/25 Python
Python中实现两个字典(dict)合并的方法
2014/09/23 Python
python如何实现内容写在图片上
2018/03/23 Python
Python使用MD5加密算法对字符串进行加密操作示例
2018/03/30 Python
python实现数据库跨服务器迁移
2018/04/12 Python
Python实现简单的文本相似度分析操作详解
2018/06/16 Python
加州风格的游泳和沙滩装品牌:Cupshe
2019/06/10 全球购物
美国传奇滑手Paul Rodriguez创办的街头滑板品牌:Primitive Skateboarding
2019/10/29 全球购物
甜品蛋糕店创业计划书
2014/09/21 职场文书
乡镇群众路线整改落实情况汇报
2014/10/28 职场文书
2015年银行大堂经理工作总结
2015/04/24 职场文书
优质护理服务心得体会
2016/01/22 职场文书
如何搭建 MySQL 高可用高性能集群
2021/06/21 MySQL