输入框输入手机号并匹配历史记录

    xiaoxiao2021-04-17  68

    html:

    <ul class="form-list border-list"> <li> <input class="mobile" type="text" placeholder="请输入11位手机号码"> <p class="motion-shop"><i class="icon-hook"></i><span>广州移动</span></p> <ul class="hist-box border-bottom hide"> <li class="histNum"><span class="historynum">13748941231</span> <span class="font-red">这是手机号码</span></li> <li class="histNum"><span class="historynum">18848941232</span> <span class="font-red">这是手机号码</span></li> <li class="histNum"><span class="historynum">15048941233</span> <span class="font-red">这是手机号码</span></li> </ul> </li> </ul>

    css:

    .form-list li {    position: relative;    display: -webkit-box;    -webkit-box-align: center;    padding: 10px;    box-sizing: border-box; } .form-list input {     -webkit-box-flex: 1;      display: -webkit-box;      -webkit-box-orient: vertical;      -webkit-box-pack: center; } .hist-box {    position: absolute;    top: 44px;    width: 100%;    left: 0;    background: #fff;    padding: 10px;    box-sizing: border-box; } .hist-box .histNum {    color: #898989;    font-size: 14px; }

    js:

    //聚焦输入框 $('.mobile').bind('click',function(event){ var $_this = $(this); $(this).siblings('.hist-box').removeClass('hide'); $_this.on('input propertychange',function(){ var flag = false; var inputLen = $_this.val().length; //输入框输入的文字长度 $('.hist-box li').each(function(){//判断字符串是否匹配 var shortStr = $(this).find('.historynum').html().substring(0,inputLen); if($_this.val().match(shortStr)){ flag = true; } }); if(flag == true && inputLen < 11){ $_this.siblings('.hist-box').removeClass('hide'); }else { $_this.siblings('.hist-box').addClass('hide'); } }); //点击历史号码 $('.hist-box li').on('click',function(event) { var histNum = $(this).find('.historynum').html(); $_this.val(histNum); $(this).parent('.hist-box').addClass('hide'); }); });

    解题思路:此题的重点是实时判断输入框内容的长度,并且遍历历史记录的号码,用substring()方法截取与输入框长度一致的字符串;然后通过match()函数看输入框的内容与截取的字符串是否一致,如果一致则继续显示历史记录框,否则隐藏。 效果如图:当输入框输入的号码与以下历史不一致,则会隐藏历史记录部分框。

    转载请注明原文地址: https://ju.6miu.com/read-674311.html

    最新回复(0)