JS實(shí)現(xiàn)的郵箱提示補(bǔ)全效果示例
本文實(shí)例講述了JS實(shí)現(xiàn)的郵箱提示補(bǔ)全效果。分享給大家供大家參考,具體如下:
現(xiàn)在要實(shí)現(xiàn)的是類似網(wǎng)易登錄時(shí)的郵箱提示框的效果,不過(guò)這里我打算稍微改變一下,就是在輸入@的時(shí)候再出現(xiàn)郵箱提示列表
實(shí)現(xiàn)提示的原理是采用正則進(jìn)行匹配
效果圖如下:

代碼如下:
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>郵箱補(bǔ)全提示</title>
<style>
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}
</style>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script>
window.email_auto = function(selector){
var elt = $(selector);
var strHtml = '<div class="login_autoComplete" id="login_autoComplete">'+
' <ul class="login_auto_ul">'+
' <li class="login_auto_title">請(qǐng)選擇郵箱后綴</li>'+
' <li class="hover" hz="@qq.com"></li>'+
' <li hz="@163.com"></li>'+
' <li hz="@126.com"></li>'+
' <li hz="@yahoo.com"></li>'+
' <li hz="@sina.com"></li>'+
' <li hz="@21cn.com"></li>'+
' </ul>'+
' </div>';
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);
//用戶名補(bǔ)全+翻動(dòng)
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");
});
</script>
</head>
<body>
腳本之家測(cè)試:郵箱補(bǔ)全提示<br/>
<input type="text" id="xxx" style="width:300px"/>
</body>
</html>
PS:這里再為大家提供2款非常方便的正則表達(dá)式工具供大家參考使用:
JavaScript正則表達(dá)式在線測(cè)試工具:
http://tools.jb51.net/regex/javascript
正則表達(dá)式在線生成工具:
http://tools.jb51.net/regex/create_reg
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript正則表達(dá)式技巧大全》、《JavaScript替換操作技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》、《JavaScript中json操作技巧總結(jié)》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
- js輸入框郵箱自動(dòng)提示功能代碼實(shí)現(xiàn)
- 仿新浪微博登陸郵箱提示效果的js代碼
- JavaScript輸入郵箱自動(dòng)提示實(shí)例代碼
- 一個(gè)仿微博登陸郵箱提示框js開(kāi)發(fā)案例
- JS實(shí)現(xiàn)提交表單前的數(shù)字及郵箱校檢功能
- js仿QQ郵箱收件人選擇與搜索功能
- JavaScript實(shí)現(xiàn)郵箱地址自動(dòng)匹配功能代碼
- JavaScript 文本框下拉提示(自動(dòng)提示)
- JS仿百度自動(dòng)下拉框模糊匹配提示
- javascript實(shí)現(xiàn)下拉提示選擇框
- javascript仿百度輸入框提示自動(dòng)下拉補(bǔ)全
相關(guān)文章
一直都需要的復(fù)制到系統(tǒng)剪貼板之IE,firefox兼容版
一直都需要的復(fù)制到系統(tǒng)剪貼板之IE,firefox兼容版...2007-09-09
利用JavaScript實(shí)現(xiàn)春節(jié)倒計(jì)時(shí)效果(移動(dòng)端和PC端)
這篇文章主要介紹了通過(guò)Html+Css+js如何實(shí)現(xiàn)春節(jié)倒計(jì)時(shí)效果,本文同時(shí)介紹了移動(dòng)端和PC端兩種效果,感興趣的同學(xué)可以跟隨小編一起動(dòng)手試試2022-01-01
JavaScript數(shù)據(jù)結(jié)構(gòu)yocto queue隊(duì)列鏈表代碼分析
這篇文章主要為大家介紹了JavaScript數(shù)據(jù)結(jié)構(gòu)yocto queue隊(duì)列鏈表代碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
小程序點(diǎn)擊圖片實(shí)現(xiàn)png轉(zhuǎn)jpg
這篇文章主要介紹了小程序點(diǎn)擊圖片實(shí)現(xiàn)png轉(zhuǎn)jpg,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10
JavaScript 動(dòng)態(tài)將數(shù)字金額轉(zhuǎn)化為中文大寫(xiě)金額
JavaScript 將數(shù)字金額轉(zhuǎn)化為中文大寫(xiě)金額的函數(shù)2009-05-05
javascript 實(shí)現(xiàn)子父窗體互相傳值的簡(jiǎn)單實(shí)例
本篇文章主要是對(duì)javascript 實(shí)現(xiàn)子父窗體互相傳值的簡(jiǎn)單實(shí)例進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2014-02-02

