沉浸式阅读
Beta
原创

js实现的邮箱自动补全

     订阅 JS相关     2018-12-10     xiaohei    695    0    0    0    2018-12-10
学习要点:邮箱自动补全的内容,在前端输入邮箱的时候系统可以自动补全,这个技能点比较简单,现在写一下我自己的做法:这里需要注意两个点:1、前面用户自己输入,后面@之后的内容自动补全2、当用户输入@时,可以自动为用户匹配相应的邮箱后缀3、用户可以通过点击已匹配好的邮箱输入到框中代码(页面部分):input id="regemail" class="int-type w-thir" type="text" autocomplete="off"
邮箱自动补全的内容,在前端输入邮箱的时候系统可以自动补全,这个技能点比较简单,现在写一下我自己的做法: 

这里需要注意两个点: 
1、前面用户自己输入,后面@之后的内容自动补全 
2、当用户输入@时,可以自动为用户匹配相应的邮箱后缀 

3、用户可以通过点击已匹配好的邮箱输入到框中



代码(页面部分):

<input id="regemail" class="int-type w-thir" type="text" autocomplete="off" tips="邮箱地址" name="email" rule="" style="ime-mode: disabled;">
<div id="maillist" style="display: none;">
  <h3>请选择邮箱类型</h3>
  <ul>
    <li class="on"></li>
    <li>@qq.com</li>
    <li>@163.com</li>
    <li>@126.com</li>
    <li>@sina.com</li>
    <li>@hotmail.com</li>
    <li>@yahoo.com.cn</li>
    <li>@sohu.com</li>
    <li>@yahoo.cn</li>
    <li>@gmail.com</li>
    <li>@tom.com</li>
  </ul>
</div>

具体的布局CSS代码就不发了,这个比较简单,可以自己设计,我只发一下写入js后的css补充:

#maillist, #register .toemail iframe {
    -moz-border-bottom-colors: none;
    -moz-border-left-colors: none;
    -moz-border-right-colors: none;
    -moz-border-top-colors: none;
    background: none repeat scroll 0 0 #fff;
    border-color: -moz-use-text-color #ccc #ccc;
    border-image: none;
    border-right: 1px solid #ccc;
    border-style: none solid solid;
    border-width: 0 1px 1px;
    display: none;
    left: 0;
    position: absolute;
    top: 41px;
    width: 226px;
    z-index: 999;
}

#maillist ul li{
    color:#666;
    cursor:pointer;
}

#maillist ul li:hover{
    color:#999;
}

js代码:

<script type="text/javascript">
    function $$(id){
		return document.getElementById(id);
	}
	var lists;
	var len;
	window.onload=function(){
		var objtxt=$$("regemail");
		var objlist=$$("maillist");

        lists=objlist.getElementsByTagName("li");
        len=lists.length;

        //给每个li绑定一个鼠标的点击事件
        for(var i=1;i<len;i++){
            lists[i].onmousedown=function(){
                objtxt.value=this.textContent;
                objlist.style.display="none";
            }
        }

        //计算这个层的显示位置
        objtxt.onfocus=function(){
            objlist.style.display="block";
        }
        objtxt.onblur=function(){
            objlist.style.display="none";
        }

        //当松开键盘的按键的时候
        objtxt.onkeyup=function(){
            //获取文本框中的值
            var txt=this.value;
            var flag="";
            if(txt.indexOf("@")>0){
                flag=txt.substring(txt.indexOf("@")-1);//获取的输入的@开始的内容
                txt=txt.substring(0,txt.indexOf("@"));
            }else{
                flag="";
            }
            var val="";
            //将这个值放到所有的li前面
            for(var i=1; i<len; i++){
                val=lists[i].textContent;
                val=val.substring(val.indexOf("@"));
                lists[i].textContent=txt+val;
            }

            //如果用户输入了@,则检查哪些是满足条件的
            if(flag!=""){
                var reg=new RegExp(flag,"i");
                for(var i=1;i<len;i++){
                    if(reg.test(lists[i].textContent)){
                        lists[i].style.display="block";
                    }else{
                        lists[i].style.display="none";
                    }
                }
            }
        }
    }
</script>

本文标题: js实现的邮箱自动补全

本文链接: https://www.mbkfw.com/course/620.html (转载时请注明来源链接)

本文说明: 有问题或投稿请发送至: 邮箱/kf@dtmuban.com    QQ/290948585

特别鸣谢: 如果您觉得本文对您有帮助,请给我们一个小小的赞,收藏本文更利于反复学习哦!

 
本文标签: #js
destoon程序前端开发标签生成器

下班PC阅读不方便?

手机也可以随时学习开发

微信关注公众号“商企云服”
"模板开发网前端开发教学"
每日干货技术分享
 
0

圈友点评

文明上网理性发言,请遵守网络评论服务协议

小编推荐



色彩
×

《客户实名在线注册登记》售后一直都在!

关注

微信
关注

微信扫一扫
不同的环境体验

幸运大转盘,好礼等您拿

模板开发网公众号

模板开发网微信小程序

代授权

程序
授权

黑小二

联系
客服

很高兴为您服务
尊敬的用户,欢迎您咨询,我们为新用户准备了优惠好礼。咨询客服

联系客服:

在线QQ: 290948585

客服电话: 18605917465

E_mail邮箱: kf@dtmuban.com

微信公众号: 商企云服

微信小程序: 模板开发

QQ客服 微信客服DT授权代办 在线交谈 智能小云

工作时间:

周一至周五: 09:00 - 18:00

APP下载

安卓
APK

模板开发网安卓版APP

反馈

我要
反馈