php 邮箱提醒功能,在JS中如何实现邮箱提示补全功能

这篇文章主要介绍了JS实现的邮箱提示补全效果,涉及javascript正则匹配、事件响应及页面元素动态操作相关技巧,需要的朋友可以参考下

本文实例讲述了JS实现的邮箱提示补全效果。分享给大家供大家参考,具体如下:

现在要实现的是类似网易登录时的邮箱提示框的效果,不过这里我打算稍微改变一下,就是在输入@的时候再出现邮箱提示列表

实现提示的原理是采用正则进行匹配

效果图如下:

d6448a7feec9d0bc64e648f4ffc4996f.gif

代码如下:

邮箱补全提示

ul{padding:0px;margin:0px;}

.login_autoComplete{width:256px;border:1px solid #4190db;position:absolute;background-color:#ffffff;z-index:99;top:109px;left:40px;display:none}

.login_auto_ul em{font-style:normal}

.login_auto_ul li.login_auto_title{font-weight:normal;line-height:30px;}

.login_auto_ul li{line-height:22px;text-indent:5px;font-family:"Arial";cursor:pointer;font-weight:bold;color:#333}

.login_auto_ul li.hover,.login_auto_ul li.curr{color:#ffffff;background-color:#6eb6fe}

window.email_auto = function(selector){

var elt = $(selector);

var strHtml = '

'

'

请选择邮箱后缀'+

'

'+

'

'+

'

'+

'

'+

'

'+

'

'+

'

'+

'

';

var lc = "#login_autoComplete";

var autoComplete,autoLi;

if($(lc).length==0){

$("body").append(strHtml);

$(lc).data("elt",elt);

autoComplete = $("#login_autoComplete");

autoLi = autoComplete.find("li:not(.login_auto_title)");

autoLi.mouseover(function(){

$(this).siblings().filter(".hover").removeClass("hover");

$(this).addClass("hover");

}).mouseout(function(){

$(this).removeClass("hover");

}).mousedown(function(){

$(lc).data("elt").val($(this).text()).change();

$(this).parent().parent().hide();

});

}else{

$(lc).data("elt",elt);

autoComplete = $("#login_autoComplete");

autoLi = autoComplete.find("li:not(.login_auto_title)");

}

$(lc).css("width",elt.outerWidth()-1);

//用户名补全+翻动

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

});

if(autoLi.filter(":visible").length==0){

autoComplete.hide();

}else{

autoLi.filter(":visible").eq(0).addClass("hover");

}

}).change(function(){

$("#login_autoComplete").hide();

}).keydown(function(e){

if(e.keyCode==38){ //上

autoLi.filter(".hover").prev().not(".login_auto_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){ //Enter

autoLi.filter(".hover").mousedown();

}

}).focus(function(){

$("#login_autoComplete").data("elt",$(this));

});

}

$(function(){

email_auto("#xxx");

});

脚本之家测试:邮箱补全提示

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值