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 事件查询综合 推荐收藏
Mar 10 Javascript
JQuery从头学起第二讲
Jul 04 Javascript
JS控制阿拉伯数字转为中文大写示例代码
Sep 04 Javascript
javascript读取xml实现javascript分页
Dec 13 Javascript
jquery实现页面图片等比例放大缩小功能
Feb 12 Javascript
JavaScript语言对Unicode字符集的支持详解
Dec 30 Javascript
JS中input表单隐藏域及其使用方法
Feb 13 Javascript
vue+axios+element ui 实现全局loading加载示例
Sep 11 Javascript
angularjs请求数据的方法示例
Aug 06 Javascript
vue 实现用户登录方式的切换功能
Apr 14 Javascript
es6函数之rest参数用法实例分析
Apr 18 Javascript
Vue实现随机验证码功能
Dec 29 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
解析如何去掉CodeIgniter URL中的index.php
2013/06/25 PHP
浅析php插件 Simple HTML DOM 用DOM方式处理HTML
2013/07/01 PHP
php+mysql实现用户注册登陆的方法
2015/01/03 PHP
fckeditor上传文件按日期存放及重命名方法
2015/05/22 PHP
php外部执行命令函数用法小结
2016/10/11 PHP
降低PHP Redis内存占用
2017/03/23 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
2020/02/27 PHP
js获取图片大小的函数代码
2011/09/20 Javascript
js获取input长度并根据页面宽度设置其大小及居中对齐
2014/08/22 Javascript
JS实现新浪博客左侧的Blog管理菜单效果代码
2015/10/22 Javascript
详解JS面向对象编程
2016/01/24 Javascript
JS控制div跳转到指定的位置的几种解决方案总结
2016/11/05 Javascript
Javascript前端经典的面试题及答案
2017/03/14 Javascript
vue.js加载新的内容(实例代码)
2017/06/01 Javascript
详解使用VUE搭建后台管理系统(vue-cli更新至3.0)
2018/08/22 Javascript
layui的select联动实现代码
2019/09/28 Javascript
Vue学习之常用指令实例详解
2020/01/06 Javascript
在博客园博文中添加自定义右键菜单的方法详解
2020/02/05 Javascript
纯JS开发baguetteBox.js响应式画廊插件
2020/06/28 Javascript
[01:49]一目了然!DOTA2DotA快捷操作对比第二弹
2014/05/16 DOTA
python使用xmlrpc实例讲解
2013/12/17 Python
让 python 命令行也可以自动补全
2014/11/30 Python
Java与Python两大幸存者谁更胜一筹呢
2018/04/12 Python
Python实现的简单计算器功能详解
2018/08/25 Python
python库matplotlib绘制坐标图
2019/10/18 Python
tensorflow入门:TFRecordDataset变长数据的batch读取详解
2020/01/20 Python
解析Python 偏函数用法全方位实现
2020/06/26 Python
Python3.9新特性详解
2020/10/10 Python
Python安装第三方库攻略(pip和Anaconda)
2020/10/15 Python
法学院方阵解说词
2014/01/29 职场文书
党员承诺书内容
2014/03/26 职场文书
乡镇平安建设汇报材料
2014/08/25 职场文书
优秀英文求职信范文
2015/03/19 职场文书
2016教师廉洁从教心得体会
2016/01/13 职场文书
pytorch 使用半精度模型部署的操作
2021/05/24 Python
MySQL Router实现MySQL的读写分离的方法
2021/05/27 MySQL