jquery css实现邮箱自动补全


Posted in Javascript onNovember 14, 2016

 今天在公司做一个电子商务网站的注册会员时,要求用户在电子邮箱文本框中输入时,给与热点提示常用的电子邮箱,帮助用户选择,提高体验效果。下面是用Jquery+css实现的邮箱自动补全,供大家参考和学习。

HTML代码:emailAutoComple.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
  <title>邮箱自动补全</title>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <link type="text/css" rel="stylesheet" href="css/emailAutoComple.css">
  <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
  <script type="text/javascript" src="js/emailAutoComple.js"></script>
  <script type="text/javascript">
    $(function(){
    $.AutoComplete("#email");  //(要补全文本框的id)
    });
  </script>
 </head>
 
 <body>
  <form action="">
        姓名:<input type="text" name="userName" id="userName"/><br/>
        邮箱:<input type="text" name="email" id="email"/>
  </form>
 </body>
</html>

 JS代码:js/emailAutoComple.js(实现自动补全的关键代码)

jQuery.AutoComplete = function(selector){
  var elt = $(selector);
  var strHtml = '<div class="AutoComplete" id="AutoComplete">'+
        '    <ul class="AutoComplete_ul">'+
        '      <li hz="@163.com"></li>'+
        '      <li hz="@126.com"></li>'+
        '      <li hz="@139.com"></li>'+
        '      <li hz="@189.com"></li>'+
        '      <li hz="@qq.com"></li>'+
        '      <li hz="@vip.sina.com"></li>'+
        '      <li hz="@sina.cn"></li>'+
        '      <li hz="@sina.com"></li>'+
        '      <li hz="@sohu.com"></li>'+
        '      <li hz="@hotmail.com"></li>'+
        '      <li hz="@gmail.com"></li>'+
        '      <li hz="@wo.com.cn"></li>'+
        '      <li hz="@21cn.com"></li>'+
        '      <li hz="@aliyun.com"></li>'+
        '      <li hz="@yahoo.com"></li>'+
        '      <li hz="@foxmail.com"></li>'+
        '    </ul>'+
        '  </div>';
  //将div追加到body上
  $('body').append(strHtml);     
  var autoComplete,autoLi;
  autoComplete = $('#AutoComplete');    
  autoComplete.data('elt',elt);
  autoLi = autoComplete.find('li');
  autoLi.mouseover(function(){
    $(this).siblings().filter('.hover').removeClass('hover');
    $(this).addClass('hover');
  }).mouseout(function(){
    $(this).removeClass('hover');
  }).mousedown(function(){
    autoComplete.data('elt').val($(this).text()).change();
    autoComplete.hide();
  });
  //用户名补全+翻动
  elt.keyup(function(e){
    if(/13|38|40|116/.test(e.keyCode) || this.value==''){
      return false;
    }
    var username = this.value;
    if(username.indexOf('@')==-1){
      autoComplete.hide();
      return false;
    }
    autoLi.each(function(){
      this.innerHTML = username.replace(/\@+.*/,'')+$(this).attr('hz');
      if(this.innerHTML.indexOf(username)>=0){
        $(this).show();
      }else{
        $(this).hide();  
      }
    }).filter('.hover').removeClass('hover');
    autoComplete.show().css({
      left : $(this).offset().left,
      top : $(this).offset().top + $(this).outerHeight(true) - 1,
      position: 'absolute',
      zIndex: '99999'
    });
    if(autoLi.filter(':visible').length==0){
      autoComplete.hide();
    }else{
      autoLi.filter(':visible').eq(0).addClass('hover');      
    }
  }).keydown(function(e){
    if(e.keyCode==38){ //上
      autoLi.filter('.hover').prev().not('.AutoComplete_title').addClass('hover').next().removeClass('hover');
    }else if(e.keyCode==40){ //下
      autoLi.filter('.hover').next().addClass('hover').prev().removeClass('hover');
    }else if(e.keyCode==13){ //确定
      autoLi.filter('.hover').mousedown();
    }
  }).focus(function(){
    autoComplete.data('elt',$(this));
  }).blur(function(){
    autoComplete.hide();
  });
};

CSS代码:css/emailAutoComple.css

#AutoComplete{background:#fff;border:1px solid #4190db;display:none;width:150px;}
#AutoComplete ul{list-style-type:none;margin:0;padding:0;}
#AutoComplete li{color:#333;cursor:pointer;font:12px/22px \5b8b\4f53;text-indent:5px;}
#AutoComplete .hover{background:#6eb6fe;color:#fff;}

效果图:

jquery css实现邮箱自动补全

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用js+xml自动生成表格的东西
Dec 21 Javascript
JavaScript判断IE版本型号
Jul 27 Javascript
JavaScript学习笔记整理之引用类型
Jan 22 Javascript
Google 地图获取API Key详细教程
Aug 06 Javascript
Bootstrap Img 图片样式(推荐)
Dec 13 Javascript
jquery对象与DOM对象转化
Feb 08 Javascript
vue、react等单页面项目部署到服务器的方法及vue和react的区别
Sep 29 Javascript
vue中的适配px2rem示例代码
Nov 19 Javascript
JS实现判断有效的数独算法示例
Feb 25 Javascript
简单实现节流函数和防抖函数过程解析
Oct 08 Javascript
element表格翻页第2页从1开始编号(后端从0开始分页)
Dec 10 Javascript
基于ajax实现上传图片代码示例解析
Dec 03 Javascript
JS常用算法实现代码
Nov 14 #Javascript
node.js缺少mysql模块运行报错的解决方法
Nov 13 #Javascript
JavaScript判断浏览器对CSS3属性是否支持的多种方法
Nov 13 #Javascript
JS实现的几个常用算法
Nov 12 #Javascript
AngularJS操作键值对象类似java的hashmap(填坑小结)
Nov 12 #Javascript
使用纯JS代码判断字符串中有多少汉字的实现方法(超简单实用)
Nov 12 #Javascript
Angular学习笔记之angular的$filter服务浅析
Nov 12 #Javascript
You might like
PHP中使用Imagick读取pdf并生成png缩略图实例
2015/01/21 PHP
javascript实现上传图片并预览的效果实现代码
2011/04/11 Javascript
简单的Jquery遮罩层代码实例
2013/11/14 Javascript
js对table的td进行相同内容合并示例详解
2013/12/27 Javascript
jQuery中验证表单提交方式及序列化表单内容的实现
2014/01/06 Javascript
超棒的响应式布局jQuery插件Freetile.js
2014/11/17 Javascript
分享网页检测摇一摇实例代码
2016/01/14 Javascript
基于jQuery.validate及Bootstrap的tooltip开发气泡样式的表单校验组件思路详解
2016/07/18 Javascript
浅析webpack 如何优雅的使用tree-shaking(摇树优化)
2017/08/16 Javascript
swiper移动端轮播插件(触碰图片之后停止轮播)
2017/12/28 Javascript
Vue开发Html5微信公众号的步骤
2019/04/11 Javascript
JavaScript实现烟花绽放动画效果
2020/08/04 Javascript
在VUE中使用lodash的debounce和throttle操作
2020/11/09 Javascript
Python性能优化的20条建议
2014/10/25 Python
python字符串对其居中显示的方法
2015/07/11 Python
关于Python面向对象编程的知识点总结
2017/02/14 Python
django定期执行任务(实例讲解)
2017/11/03 Python
TensorFlow如何实现反向传播
2018/02/06 Python
使用Python抓取豆瓣影评数据的方法
2018/10/17 Python
利用PyCharm操作Github(仓库新建、更新,代码回滚)
2019/12/18 Python
浅谈python中频繁的print到底能浪费多长时间
2020/02/21 Python
基于matplotlib xticks用法详解
2020/04/16 Python
python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式
2020/05/16 Python
HTML5 与 XHTML2
2008/10/17 HTML / CSS
利用HTML5 Canvas制作键盘及鼠标动画的实例分享
2016/03/15 HTML / CSS
享受加州生活方式的时尚舒适:XCVI
2018/07/09 全球购物
学习标兵获奖感言
2014/02/20 职场文书
小学教师自我鉴定范文
2014/03/20 职场文书
相亲大会策划方案
2014/06/05 职场文书
项目转让协议书
2014/10/27 职场文书
仓管员岗位职责
2015/02/03 职场文书
旅游项目合作意向书
2015/05/08 职场文书
2015年高中语文教学总结
2015/08/18 职场文书
创业计划书之废品回收
2019/09/26 职场文书
React Hook用法示例详解(6个常见hook)
2021/04/28 Javascript
sentinel支持的redis高可用集群配置详解
2022/04/01 Redis