栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > JavaScript

JavaScript实现邮箱后缀提示功能

JavaScript 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaScript实现邮箱后缀提示功能

先来个基础的需求

根据下面需求实现如示意图所示的邮箱输入提示功能,注意,根据要求只需实现下面功能

  • 当用户没有任何输入时,提示框消失

  • 当用户输入字符后,显示提示框,并且把用户输入的内容自动拼上邮箱后缀进行显示

  • 暂时不用考虑示意图中的红色和蓝色背景色的逻辑

  • 注意用户输入中前后空格需要去除

小优化编码需求

如果我们输入的是 abc@1,这个时候出现的提示框内容是

  • abc@1@163.com

  • abc@1@gmail.com

  • abc@1@126.com
    ……

很明显,上面的提示框不是一个符合用户需求的提示,我们需要做一些优化:

    • 当用户输入含有 @ 符号时,我们选取用户输入的@前面的字符来和后缀拼接

需求

这下出现的提示好多了,不过用户如果已经输入了@1,说明他大概率要输入163或者126,我们需要让我们的提示更加符合用户的期望。满足以下需求:

  • 当用户输入了 @ 及部分后缀时,只从 postfixList 选取符合用户输入预期的后缀,我们以前缀匹配为要求。

  • 当用户输入不满足任何前缀匹配时,则显示全部提示

测试用例

  • 输入a@1->出现提示框,提示a@163.com, a@126.com

  • 输入a@g->出现提示框,提示a@gmail.com

  • 输入a@2->出现提示框,提示a@263.net

  • 输入a@qq->出现提示框,提示a@qq.com

  • 输入a@163.->出现提示框,提示a@163.com

  • 输入a@126.com->出现提示框,提示a@126.com

  • 输入a@qq.com (两个空格)->出现提示框,提示a@qq.com

  • 输入a@qq.comm->出现提示框,出现全部提示

代码1

  1   2   3   4   5       6     邮箱后缀提示1-完成基本提示  7       8   9  10  11      12          13          14  15          16      17     117 118 119 

新的需求编码需求

上面我们只完成了提示,但提示还没有直接作用到选择中,我们现在完成以下需求:

  • 使用CSS实现:鼠标滑过提示框的某一个提示时,这个提示内容背景色变化,表示鼠标经过了这个DOM节点

  • 鼠标如果点击某个提示,则提示内容进入输入框,同时提示框消失

  • 在上个步骤结束后,在输入框中任意再输入字符或删除字符,则重新开始出现提示框

需求

尝试在输入框中输入,看看提示框发生了什么

阅读
  • Web安全之XSS攻防

  • javascript对HTML字符转义与反转义

设计

我们需要在两个地方进行处理,一个是在生成提示内容那里,对于特殊字符进行转义编码,另一个是在把鼠标点击的提示框内容转回输入框时进行解码。

代码2





    
    邮箱后缀提示2-添加样式和监听鼠标点击和转码内容
    
    #input-email{
        width: 300px;
        height: 30px;
    }
    .email-sug{
        width: 300px;
        list-style: none;
        padding: 0px;
        margin: 0px;
        border: 2px solid rgba(134, 132, 132,0.3);
        border-top:none;
        display: none;        
    }
    .email-sug li{
        width: 300px;
        height: 30px;
        background-color: #ffffff;
        color: darkgrey;
        line-height: 30px;    
    }
    .email-sug li:hover{
        background-color:pink;
    }    



    
        
        

        
    
    


加上键盘需求

我们给提示框加上3个按键的功能,分别是回车和上下键,使得可以通过键盘操作进行提示框的选择

  • 当有提示框的时候,默认第一个提示为被选择状态,用一个和鼠标滑过不一样的背景色来标识

  • 当有输入框的时候,按上键,可以向上移动选择状态,如果按键之前的被选择提示是第一个,则被选状态移到最下面一个

  • 当有输入框的时候,按下键,可以向下移动选择状态,如果按键之前的被选择提示是最后一个,则被选状态移到第一个

  • 当有输入框时,按回车键,则将当前被选中状态的提示内容,放到输入框中,并隐藏提示框

  • 当没有输入框的时候,这3个键盘按键无响应

  • 当用户输入发生改变的时候,选择状态都重新切回到第一个提示

优化体验需求

当我们进入页面,或者当我们点击鼠标进行提示选择后,输入框的焦点就不在了,所以请你优化一下用户体验:

  • 一进入页面就将焦点放在输入框中

  • 用户点击鼠标,进行提示选择后,焦点依然在输入框中

  • 用户按ESC键的时候,对用户输入进行全选

代码3

  1   2   3   4   5       6     邮箱后缀提示3-添加键盘响应及输入框焦点优化  7       8         #input-email{  9         width: 300px; 10         height: 30px; 11     } 12     .email-sug{ 13         width: 300px; 14         list-style: none; 15         padding: 0px; 16         margin: 0px; 17         border: 2px solid rgba(134, 132, 132,0.3); 18         border-top:none; 19         display: none; 20          21     } 22     .email-sug li{ 23         width: 300px; 24         height: 30px; 25         background-color: #ffffff; 26         color: darkgrey; 27         line-height: 30px;    
 28         overflow: hidden; 29         padding-left: 10px; 30         box-sizing: border-box; 31     } 32     .email-sug li:hover{ 33         background-color:skyblue; 34     } 35     .email-sug li.active{ 36         background-color:pink; 37     } 38      39  40  41  42      43          44          45  46          47      48     218 219 220 

最终效果如图:

原文出处:https://www.cnblogs.com/Joe-and-Joan/p/10111099.html  

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/245430.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号