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中confirm,alert,prompt函数使用区别分析
Apr 01 Javascript
Javascript 面向对象编程(一) 封装
Aug 28 Javascript
封装了一个支持匿名函数的Javascript事件监听器
Jun 05 Javascript
node.js中的console.trace方法使用说明
Dec 09 Javascript
javascript 继承学习心得总结
Mar 17 Javascript
微信小程序 底部导航栏目开发资料
Dec 05 Javascript
Vuex之理解Getters的用法实例
Apr 19 Javascript
浅谈JavaScript 代码整洁之道
Oct 23 Javascript
JS 事件机制完整示例分析
Jan 15 Javascript
node 版本切换的实现
Feb 02 Javascript
Node.js文本文件BOM头的去除方法
Nov 22 Javascript
vue-treeselect的基本用法以及解决点击无法出现拉下菜单
Apr 30 Vue.js
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+javascript液晶时钟
2006/10/09 PHP
php表单敏感字符过滤类
2014/12/08 PHP
详解在PHP的Yii框架中使用行为Behaviors的方法
2016/03/18 PHP
PHP6连接SQLServer2005的三部曲
2016/04/15 PHP
jQuery 连续列表实现代码
2009/12/21 Javascript
初窥JQuery(二) 事件机制(1)
2010/11/25 Javascript
jquery ajax同步异步的执行最终解决方案
2013/04/26 Javascript
javascript中简单的进制转换代码实例
2013/10/26 Javascript
Javascript 命名空间模式
2013/11/01 Javascript
父节点获取子节点的字符串示例代码
2014/02/26 Javascript
动态显示可输入的字数提示还可以输入的字数
2014/04/01 Javascript
tuzhu_req.js 实现仿百度图片首页效果
2015/08/11 Javascript
Javascript中this绑定的3种方法与比较
2016/10/13 Javascript
BootStrap 可编辑表Table格
2016/11/24 Javascript
BootstrapValidator超详细教程(推荐)
2016/12/07 Javascript
AngularJS服务service用法总结
2016/12/13 Javascript
Jquery根据浏览器窗口改变调整大小的方法
2017/02/07 Javascript
jQuery实现返回顶部按钮和scroll滚动功能[带动画效果]
2017/07/05 jQuery
Node.JS更改Windows注册表Regedit的方法小结
2017/08/18 Javascript
Nodejs 复制文件/文件夹的方法
2017/08/24 NodeJs
node内置调试方法总结
2018/02/22 Javascript
vue.js将时间戳转化为日期格式的实现代码
2018/06/05 Javascript
你或许不知道的一些npm实用技巧
2019/07/04 Javascript
Vue 权限控制的两种方法(路由验证)
2019/08/16 Javascript
layui多iframe页面控制定时器运行的方法
2019/09/05 Javascript
基于Python实现对PDF文件的OCR识别
2016/08/05 Python
Python OpenCV调用摄像头检测人脸并截图
2020/08/20 Python
django 中QuerySet特性功能详解
2019/07/25 Python
Pandas 缺失数据处理的实现
2019/11/04 Python
Python Socketserver实现FTP文件上传下载代码实例
2020/03/27 Python
css3中新增的样式使用示例附效果图
2014/08/19 HTML / CSS
video.js支持m3u8格式直播的实现示例
2020/05/20 HTML / CSS
关于学习的演讲稿
2014/05/10 职场文书
党员考试作弊检讨书1000字
2015/02/16 职场文书
企业反腐倡廉心得体会
2015/08/15 职场文书
2019年最新证婚词精选集!
2019/06/28 职场文书