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 相关文章推荐
JavaScript表单常用验证集合
Jan 16 Javascript
Jquery EasyUI的添加,修改,删除,查询等基本操作介绍
Oct 11 Javascript
二叉树的非递归后序遍历算法实例详解
Feb 07 Javascript
javascript拖拽效果延伸学习
Apr 04 Javascript
Javascript 链式作用域详细介绍
Feb 23 Javascript
vue动态组件实现选项卡切换效果
Mar 08 Javascript
详解EasyUi控件中的Datagrid
Aug 23 Javascript
小程序实现抽奖动画
Apr 16 Javascript
EasyUI 数据表格datagrid列自适应内容宽度的实现
Jul 18 Javascript
mpvue实现小程序签到金币掉落动画(api实现)
Oct 17 Javascript
JS操作Fckeditor的一些常用方法(获取、插入等)
Feb 19 Javascript
微信jssdk踩坑之签名错误invalid signature
May 19 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
新浪新闻小偷
2006/10/09 PHP
CI框架中集成CKEditor编辑器的教程
2014/06/09 PHP
将FCKeditor导入PHP+SMARTY的实现方法
2015/01/15 PHP
在Linux系统的服务器上隐藏PHP版本号的方法
2015/06/06 PHP
解决PHP curl或file_get_contents下载图片损坏或无法打开的问题
2019/10/11 PHP
C#中TrimStart,TrimEnd,Trim在javascript上的实现
2011/01/17 Javascript
js控制鼠标事件移动及移出效果显示
2014/10/19 Javascript
javascript操作数组详解
2014/12/17 Javascript
在浏览器中实现图片粘贴的jQuery插件-- pasteimg使用指南
2014/12/29 Javascript
JavaScript实现的Tween算法及缓冲特效实例代码
2015/11/03 Javascript
Bootstrap实现响应式导航栏效果
2015/12/28 Javascript
JavaScript的设计模式经典之代理模式
2016/02/24 Javascript
Document.body.scrollTop的值总为零的快速解决办法
2016/06/09 Javascript
js实现文字向上轮播功能
2017/01/13 Javascript
js中数组插入、删除元素操作的方法
2017/02/15 Javascript
babel的使用及安装配置教程
2018/02/22 Javascript
vue watch监听对象及对应值的变化详解
2018/02/24 Javascript
PHP读取远程txt文档到数组并实现遍历
2020/08/25 Javascript
javascript实现左右缓动动画函数
2020/11/25 Javascript
[03:04]2018年国际邀请赛典藏宝瓶&莱恩声望物品展示 片尾有彩蛋
2018/06/04 DOTA
PyQt5每天必学之带有标签的复选框
2018/04/19 Python
Python实现获取本地及远程图片大小的方法示例
2018/07/21 Python
python处理DICOM并计算三维模型体积
2019/02/26 Python
python 类的继承 实例方法.静态方法.类方法的代码解析
2019/08/23 Python
使用pickle存储数据dump 和 load实例讲解
2019/12/30 Python
如何基于Python pygame实现动画跑马灯
2020/11/18 Python
paramiko使用tail实时获取服务器的日志输出详解
2020/12/06 Python
CSS3制作彩色进度条样式的代码示例分享
2016/06/23 HTML / CSS
阿根廷旅游网站:almundo阿根廷
2018/02/12 全球购物
澳洲小众品牌的集合网站:BNKR
2018/02/23 全球购物
Ibood荷兰:互联网每日最佳在线优惠
2019/02/28 全球购物
英国手工制作的现代与经典的沙发和床:Love Your Home
2020/09/26 全球购物
某同学的自我鉴定范文
2013/12/26 职场文书
2014年创先争优工作总结
2014/12/11 职场文书
学前班幼儿评语大全
2014/12/29 职场文书
Win11无法访问设备和打印机 如何解决页面空白
2022/04/09 数码科技