input即时————模糊匹配(纯html+jquery简单实现)

时间:2020-12-25 03:49:34
  1. <!DOCTYPE html>
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <script src="jquery-1.7.2.min.js"></script>
  6. <title></title>
  7. <style type="text/css">
  8. #div_main {
  9. margin: 0 auto;
  10. width: 300px;
  11. height: 400px;
  12. border: 1px solid black;
  13. margin-top: 50px;
  14. }
  15. #div_txt {
  16. position: relative;
  17. width: 200px;
  18. margin: 0 auto;
  19. margin-top: 40px;
  20. }
  21. #txt1 {
  22. width: 99%;
  23. }
  24. #div_items {
  25. position: relative;
  26. width: 100%;
  27. height: 200px;
  28. border: 1px solid #66afe9;
  29. border-top: 0px;
  30. overflow: auto;
  31. display: none;
  32. }
  33. .div_item {
  34. width: 100%;
  35. height: 20px;
  36. margin-top: 1px;
  37. font-size: 13px;
  38. line-height: 20px;
  39. }
  40. </style>
  41. </head>
  42. <body>
  43. <div id="div_main">
  44. <!--表单的autocomplete="off"属性设置可以阻止浏览器默认的提示框-->
  45. <form autocomplete="off">
  46. <div id="div_txt">
  47. <!--要模糊匹配的文本框-->
  48. <input type="text" id="txt1" />
  49. <!--模糊匹配窗口-->
  50. <div id="div_items">
  51. <div class="div_item">周杰伦</div>
  52. <div class="div_item">周杰</div>
  53. <div class="div_item">林俊杰</div>
  54. <div class="div_item">林宥嘉</div>
  55. <div class="div_item">林妙可</div>
  56. <div class="div_item">唐嫣</div>
  57. <div class="div_item">唐家三少</div>
  58. <div class="div_item">唐朝盛世</div>
  59. <div class="div_item">奥迪A4L</div>
  60. <div class="div_item">奥迪A6L</div>
  61. <div class="div_item">奥迪A8L</div>
  62. <div class="div_item">奥迪R8</div>
  63. <div class="div_item">宝马GT</div>
  64. </div>
  65. </div>
  66. </form>
  67. </div>
  68. </body>
  69. </html>
  70. <script type="text/javascript">
  71. //弹出列表框
  72. $("#txt1").click(function () {
  73. $("#div_items").css('display', 'block');
  74. return false;
  75. });
  76. //隐藏列表框
  77. $("body").click(function () {
  78. $("#div_items").css('display', 'none');
  79. });
  80. //移入移出效果
  81. $(".div_item").hover(function () {
  82. $(this).css('background-color', '#1C86EE').css('color', 'white');
  83. }, function () {
  84. $(this).css('background-color', 'white').css('color', 'black');
  85. });
  86. //文本框输入
  87. $("#txt1").keyup(function () {
  88. $("#div_items").css('display', 'block');//只要输入就显示列表框
  89. if ($("#txt1").val().length <= 0) {
  90. $(".div_item").css('display', 'block');//如果什么都没填,跳出,保持全部显示状态
  91. return;
  92. }
  93. $(".div_item").css('display', 'none');//如果填了,先将所有的选项隐藏
  94. for (var i = 0; i < $(".div_item").length; i++) {
  95. //模糊匹配,将所有匹配项显示
  96. if ($(".div_item").eq(i).text().substr(0, $("#txt1").val().length) == $("#txt1").val()) {
  97. $(".div_item").eq(i).css('display', 'block');
  98. }
  99. }
  100. });
  101. //项点击
  102. $(".div_item").click(function () {
  103. $("#txt1").val($(this).text());
  104. });
  105. </script>