热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

jquery实现邮箱自动补全功能示例分享_jquery

这篇文章主要介绍了jquery实现邮箱自动补全功能,大家参考使用吧
代码如下:


(function($){
$.fn.autoMail = function(options){
var autoMail = $(this);
var _value = '';
var _index = -1;
var _width = autoMail.outerWidth();
var _height = autoMail.outerHeight();
var _left = autoMail.offset().left;
var _top = autoMail.offset().top;
autoMail.defaults = {
deValue : '请输入邮箱地址',
textCls : 'text-gray',
listCls : 'list-mail',
listTop : 1,
mailArr : ["qq.com","gmail.com","126.com","163.com","hotmail.com","yahoo.com","yahoo.com.cn","live.com","sohu.com","sina.com"]
}
//初始化
autoMail.init = function(){
autoMail.vars = $.extend({},autoMail.defaults,options);
autoMail.val(autoMail.vars.deValue).addClass(autoMail.vars.textCls);
autoMail.click(function(event){
autoMail.select().removeClass(autoMail.vars.textCls);
if(autoMail.val() != autoMail.vars.deValue){
autoMail.add();
autoMail.order(_value);
autoMail.list.find('.item').each(function(){
if($(this).text() == autoMail.val()){
$(this).siblings('.item').removeClass('select');
$(this).addClass('select');
return false;
}
})
}
event.stopPropagation();
})
autoMail.blur(function(event){
if(autoMail.val() == '' || autoMail.val() == autoMail.vars.deValue){
alert(autoMail.val())
autoMail.val(autoMail.vars.deValue).addClass(autoMail.vars.textCls);
}
})
//文本域键盘松开事件
autoMail.keyup(function(event){
if($(autoMail.list).length == 0){
autoMail.add();
}
if(autoMail.list.length > 0){
var keyCode = event.keyCode;
//alert(keyCode)
switch(keyCode){
case 13:
autoMail.remove();
autoMail.blur();
break;
case 38:
_index--;
if(_index <0){
_index = 0;
}
autoMail.keyOperate(_index);
break;
case 40:
_index++;
if(_index > $('.item',autoMail.list).length - 1){
_index = ('.item',autoMail.list).length - 1
}
autoMail.keyOperate(_index);
break;
default:
if(autoMail.val().indexOf('@') <0){
_value = autoMail.val();
autoMail.order(_value);
}
}
}
})
$(document).click(function(){
if($(autoMail.list).length > 0){
autoMail.remove();
autoMail.blur();
}
})
}
//创建列表
autoMail.create = function(){
var li = '';
for(var i = 0; i li += '

  • '+ '' + '@' + autoMail.vars.mailArr[i] + '' + '
  • ';
    }
    autoMail.list = $('

      '+ li +'

    ');
    autoMail.list.css({
    'position' : 'absolute',
    'left' : _left,
    'top' : _top + _height + autoMail.vars.listTop,
    'min-width': _width
    })
    autoMail.list.appendTo($('body'));
    //邮箱列表绑定事件
    autoMail.list.find('.item').click(function(event){
    autoMail.getVal($(this));
    autoMail.remove();
    event.stopPropagation();
    })
    autoMail.list.find('.item').hover(
    function(){ $(this).addClass('hover'); },
    function(){ $(this).removeClass('hover'); }
    )
    return autoMail.list;
    }
    //序列化列表
    autoMail.order = function(_value){
    $('.name',autoMail.list).remove();
    var name = $(''+ _value +'');
    $('.item',autoMail.list).prepend(name);
    }
    //添加列表
    autoMail.add = function(){
    if(typeof autoMail.list == 'undefined' || autoMail.list.length <1) autoMail.create();
    }
    //移除列表
    autoMail.remove = function(){
    if(autoMail.list.length > 0){
    autoMail.list.remove();
    delete autoMail.list;
    }
    }
    //获取值
    autoMail.getVal = function(obj){
    if($('.name',obj).text() != ''){
    var selectValue = obj.text();
    autoMail.val(selectValue);
    }else{
    return false;
    }
    }
    //键盘操作
    autoMail.keyOperate = function(_index){
    $('.item',autoMail.list).eq(_index).addClass('hover').siblings('.item').removeClass('hover');
    autoMail.val($('.item',autoMail.list).eq(_index).text());
    }
    //开始初始话动作...
    autoMail.init();
    }
    })(jQuery)

    代码如下:

















    推荐阅读
    • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
    • VScode格式化文档换行或不换行的设置方法
      本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
    • Java实战之电影在线观看系统的实现
      本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
    • Voicewo在线语音识别转换jQuery插件的特点和示例
      本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
    • Java验证码——kaptcha的使用配置及样式
      本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
    • 本文介绍了解决IE678伪类不兼容问题的方法,包括少用CSS3和HTML5独有的属性,使用CSS hacker,使用last-child清除浮动、批量添加标签、去掉list item最后一个的border-right等技巧。同时还介绍了使用after清除浮动时加上IE独有属性zoom:1的处理方法。另外,本文还提到可以使用jQuery代替批量添加标签的功能,以及使用负边距和CSS2选择器element+element去掉list item最后一个的border-right的方法。 ... [详细]
    • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
    • HTML5网页模板怎么加百度统计?
      本文介绍了如何在HTML5网页模板中加入百度统计,并对模板文件、css样式表、js插件库等内容进行了说明。同时还解答了关于HTML5网页模板的使用方法、表单提交、域名和空间的问题,并介绍了如何使用Visual Studio 2010创建HTML5模板。此外,还提到了使用Jquery编写美好的HTML5前端框架模板的方法,以及制作企业HTML5网站模板和支持HTML5的CMS。 ... [详细]
    • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
      本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
    • 从零基础到精通的前台学习路线
      随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
    • 本文介绍了如何在Jquery中通过元素的样式值获取元素,并将其赋值给一个变量。提供了5种解决方案供参考。 ... [详细]
    • 获取ul中第一个li元素的五种方法和多个ul中第一个li元素的四种方法
      本文介绍了获取ul中第一个li元素的五种方法和多个ul中第一个li元素的四种方法,包括使用jQuery的选择器和遍历方法。通过这些方法,可以方便地获取到所需的元素,并进行相应的操作。 ... [详细]
    • 如何压缩网站页面以减少页面加载时间
      本文介绍了影响网站打开时间的两个因素,即网页加载速度和网站页面大小。重点讲解了如何通过压缩网站页面来减少页面加载时间。具体包括图片压缩、Javascript压缩、CSS压缩和HTML压缩等方法,并推荐了相应的压缩工具。此外,还提到了一款Google Chrome插件——网页加载速度分析工具Speed Tracer。 ... [详细]
    • mui框架offcanvas侧滑超出部分隐藏无法滚动如何解决
      web前端|js教程off-canvas,部分,超出web前端-js教程mui框架中off-canvas侧滑的一个缺点就是无法出现滚动条,因为它主要用途是设置类似于qq界面的那种格 ... [详细]
    • angular.element使用方法及总结
      2019独角兽企业重金招聘Python工程师标准在线查询:http:each.sinaapp.comangularapielement.html使用方法 ... [详细]
    author-avatar
    梦蕾AngeL
    这个家伙很懒,什么也没留下!
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有