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 相关文章推荐
Javascript 中的类和闭包
Jan 08 Javascript
Jquery遍历节点的方法小集
Jan 22 Javascript
jquery插件推荐 jquery.cookie
Nov 09 Javascript
javascript动态创建表格及添加数据实例详解
May 13 Javascript
jQuery与Ajax以及序列化
Feb 01 Javascript
jquery延迟对象解析
Oct 26 Javascript
从零开始学习Node.js系列教程之SQLite3和MongoDB用法分析
Apr 13 Javascript
Node.js操作redis实现添加查询功能
May 25 Javascript
vue页面加载闪烁问题的解决方法
Mar 28 Javascript
element-ui表格合并span-method的实现方法
May 21 Javascript
微信小程序实现原生步骤条
Jul 25 Javascript
javascript设计模式 ? 状态模式原理与用法实例分析
Apr 22 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实现文件上传二法
2006/10/09 PHP
我的论坛源代码(三)
2006/10/09 PHP
xajax写的留言本
2006/11/25 PHP
php URL编码解码函数代码
2009/03/10 PHP
php静态文件返回304技巧分享
2015/01/06 PHP
Yii基于数组和对象的Model查询技巧实例详解
2015/12/28 PHP
php的闭包(Closure)匿名函数初探
2016/02/14 PHP
PHP5.5.15+Apache2.4.10+MySQL5.6.20配置方法分享
2016/05/06 PHP
老生常谈ThinkPHP中的行为扩展和插件(推荐)
2017/05/05 PHP
DOM_window对象属性之--clipboardData对象操作代码
2011/02/03 Javascript
Javascript 多浏览器兼容总结(实战经验)
2013/10/30 Javascript
jQuery DOM操作实例
2014/03/05 Javascript
javascript 构造函数方式定义对象
2015/01/02 Javascript
浅析node连接数据库(express+mysql)
2015/11/30 Javascript
前端构建工具之gulp的配置与搭建详解
2017/06/12 Javascript
基于node.js express mvc轻量级框架实践
2017/09/14 Javascript
Vue+Vux项目实践完整代码
2017/11/30 Javascript
JavaScript获取当前url路径过程解析
2019/12/27 Javascript
Vue过渡效果之CSS过渡详解(结合transition,animation,animate.css)
2020/02/05 Javascript
python网络编程之TCP通信实例和socketserver框架使用例子
2014/04/25 Python
详解Python核心编程中的浅拷贝与深拷贝
2018/01/07 Python
Opencv+Python 色彩通道拆分及合并的示例
2018/12/08 Python
python turtle库画一个方格和圆实例
2019/06/27 Python
浅谈Pytorch中的自动求导函数backward()所需参数的含义
2020/02/29 Python
Python 跨.py文件调用自定义函数说明
2020/06/01 Python
python 爬虫基本使用——统计杭电oj题目正确率并排序
2020/10/26 Python
Python从文件中读取数据的方法步骤
2020/11/18 Python
Python中BeautifulSoup通过查找Id获取元素信息
2020/12/07 Python
全方位了解CSS3的Regions扩展
2015/08/07 HTML / CSS
canvas之自定义头像功能实现代码示例
2017/09/29 HTML / CSS
美国最大的珠宝商之一:Littman Jewelers
2016/11/13 全球购物
英语专业个人求职自荐信
2013/09/21 职场文书
打架检讨书100字
2014/01/08 职场文书
自荐信格式范文
2015/03/04 职场文书
病房管理制度范本
2015/08/06 职场文书
如何在centos上使用yum安装rabbitmq-server
2021/03/31 Servers