您好,欢迎访问一九零五行业门户网

jquery css实现邮箱自动补全

今天在公司做一个电子商务网站的注册会员时,要求用户在电子邮箱文本框中输入时,给与热点提示常用的电子邮箱,帮助用户选择,提高体验效果。下面是用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;}
效果图:
其它类似信息

推荐信息