zoukankan      html  css  js  c++  java
  • input 模糊搜索

    <html>
    <head>
    <title>test</title>
    <script type="text/javascript">
    //模拟数据库中的一组数据(会使用用户输入的值在这些数据中进行模糊匹配)
    var arr = ['aabb','abc','23sa','adsdw','32ad','sd','ssdd','ssddddd','233a','sdfsadf','rfgsedr','rtgea','adfasdf','erfgerg','qwefa','sedfrg','dsd3','adfv'];
    function change(obj) {
    var parent = document.getElementById("parent");//用于显示提示值的div对象
    //每一次修改了文本框值触发该事件后 都先将 “提示div” 中的所有值清空
    while(parent.hasChildNodes()) {//当div下还存在子节点时 循环继续
    parent.removeChild(parent.firstChild);
    }
    var value = obj.value;//用户输入的值
    if (value == '') {//如果是将文本框中的值删除完了,那么不再提醒 因此“提示div” 直接返回
    parent.style.display='none';
    return;
    }
    var myarr = new Array();//用于模拟存储根据用户输入的值匹配到的数据
    //模拟获取用户输入的值在后台可以模糊查询出一些数据
    for (var i = 0; i < arr.length; i++) {
    if (arr[i].indexOf(value) != -1) {
    myarr[myarr.length] = arr[i];
    }
    }
    //如果用户输入的值可以匹配到数据,则将“提示div” 设为显示,并为所有匹配到的数据创建一个div加入到“提示div”中
    if (myarr.length > 0) {
    parent.style.display='';
    var d;//创建新的div
    for (var i = 0; i < myarr.length; i++) {
    d = document.createElement("div");
    d.innerHTML = myarr[i];
    d.onmouseover=function () {this.style.backgroundColor="red";};//鼠标移到上边变颜色
    d.onmouseout=function () {this.style.backgroundColor="white";};
    //鼠标点击某个提示值后将值赋给文本框,并因此“提示div”
    d.onclick=function () {obj.value = this.innerHTML;parent.style.display="none";};
    parent.appendChild(d);//将创建的div加入到“提示div”中
    }
    } else {//否则,不显示“提示div”
    document.getElementById("parent").style.display='none';
    }
    }
    </script>
    </head>
    
    <body>
    <form name="myform" action="" method="post">
    <input type="text" name="name" id="name" style="200px;" oninput="change(this);" /><!--IE的话这里的事件不是oninput,而是onpropertychange -->
    <div style="border-left:1 red solid;200px;border-bottom:1 red solid;border-right:1 red solid;display:none;" id="parent">
    
    </div>
    </form>
    </body>
    </html>
  • 相关阅读:
    python3.7安装pygame
    Jmeter定时器
    弱网测试
    面试心得123
    如何保证测试项目的质量
    LeetCode448-数组中消失的数字
    LeetCode-两数相加
    JVM-Class文件的结构
    leetcode-222完全二叉树的节点个数
    Java虚拟机常用的性能监控工具
  • 原文地址:https://www.cnblogs.com/linyijia/p/5534670.html
Copyright © 2011-2022 走看看