【问题标题】:Add autocomplete search in existing dropdown in jQuery在 jQuery 的现有下拉列表中添加自动完成搜索
【发布时间】:2020-07-12 04:38:36
【问题描述】:

我有填充符号列表的下拉菜单。我需要添加自动完成搜索,用户可以通过下拉列表进行搜索。当用户开始输入时,需要显示带有指定文本的 div。这是我用于下拉菜单的 JS。 知道如何使用现有代码包含自动完成搜索。

JS

$(document).ready(function () {
    $("#watchList").click(function () {
        $("#watchList_Popup").removeClass('animate');
        $("#watchList_Popup").show();
        $("#add_Instrument_Popup").hide();
    });
    $("#watchList_Popup_Close").click(function () {
        $("#watchList_Popup").addClass('animate');
        setTimeout(() => {
            $("#watchList_Popup").hide();
        }, 150);
    });

    $("#add_Instrument").click(function () {
        $("#add_Instrument_Popup").removeClass('animate');
        $("#add_Instrument_Popup").show();
        $("#watchList_Popup").hide();
    });
    $("#add_Instrument_close").click(function () {
        $("#add_Instrument_Popup").addClass('animate');
        setTimeout(() => {
            $("#add_Instrument_Popup").hide();
        }, 150);
    });

})

HTML

<div class="relative">
        <div class="block border px-2 text-sm flex justify-between items-center h-base border-dark-700 rounded-sm w-lg max-w-full my-1">
            <div class="flex">
                <i class="fa fa-search mr-2 text-sm"></i>
                <p class="font-light italic text-sm leading-none">"Add Instrument</p>
            </div>
            <img class="ml-4 text-dark-700 cursor-pointer" id="add_Instrument" src="images/svg/arrow-down.svg">
        </div>
        <div id="add_Instrument_Popup" style="width: 300px; height: 332px;" class="absolute top-sm left-0 border border-dark-700 bg-black hidden transform_scale">
            <div class="p-1 text-center text-sm">
                Select Instrument
                <span class="block absolute top-0 right-0 m-2 pt-sm">
                    <img class="h-10 cursor-pointer" id="add_Instrument_close" src="images/svg/close.svg">
                </span>
            </div>
            <div class="overflow-auto" style="max-height: 91%">
                <div class="text-sm">
                    <div class="flex border-t border-dark-600 px-1 get-id" data-id="sid-7">
                        <div class="flex p-1 items-center flex-1" style="width: 180px;">
                            <img src="images/brick.png">
                            <span class="ml-1 block">EUR/USD</span>
                        </div>
                        <div class="flex w-6 bg-black shadow right">
                            <img class="rotate_-90 m-auto text-dark-700" src="images/svg/arrow-down.svg">
                        </div>
                    </div><div class="flex border-t border-dark-600 px-1 get-id" data-id="sid-8">
                        <div class="flex p-1 items-center flex-1" style="width: 180px;">
                            <img src="images/brick.png">
                            <span class="ml-1 block">EUR/CHF</span>
                        </div>
                        <div class="flex w-6 bg-black shadow right">
                            <img class="rotate_-90 m-auto text-dark-700" src="images/svg/arrow-down.svg">
                        </div>
                    </div><div class="flex border-t border-dark-600 px-1 get-id" data-id="sid-9">
                        <div class="flex p-1 items-center flex-1" style="width: 180px;">
                            <img src="images/brick.png">
                            <span class="ml-1 block">EUR/GBP</span>
                        </div>
                        <div class="flex w-6 bg-black shadow right">
                            <img class="rotate_-90 m-auto text-dark-700" src="images/svg/arrow-down.svg">
                        </div>
                    </div><div class="flex border-t border-dark-600 px-1 get-id" data-id="sid-10">
                        <div class="flex p-1 items-center flex-1" style="width: 180px;">
                            <img src="images/brick.png">
                            <span class="ml-1 block">EUR/DKK</span>
                        </div>
                        <div class="flex w-6 bg-black shadow right">
                            <img class="rotate_-90 m-auto text-dark-700" src="images/svg/arrow-down.svg">
                        </div>
                    </div><div class="flex border-t border-dark-600 px-1 get-id" data-id="sid-11">
                        <div class="flex p-1 items-center flex-1" style="width: 180px;">
                            <img src="images/brick.png">
                            <span class="ml-1 block">EUR/CAD</span>
                        </div>
                        <div class="flex w-6 bg-black shadow right">
                            <img class="rotate_-90 m-auto text-dark-700" src="images/svg/arrow-down.svg">
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>

https://jsfiddle.net/gibb01/wukr9efm/2/

【问题讨论】:

    标签: javascript jquery search autocomplete dropdown


    【解决方案1】:

    具有自动完成文本框的 jQuery 函数是“autocomplete()” 您可以按照以下给出的代码进行操作: https://jsfiddle.net/heyitsvajid/fojr146z/1

    <!doctype html>
    <html lang="en">
    <head>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <title>jQuery UI Autocomplete - Default functionality</title>
      <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
      <link rel="stylesheet" href="/resources/demos/style.css">
      <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
      <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
      <script>
      $( function() {
        var availableTags = [
          "ActionScript",
          "AppleScript",
          "Asp",
          "BASIC",
          "C",
          "C++",
          "Clojure",
          "COBOL",
          "ColdFusion",
          "Erlang",
          "Fortran",
          "Groovy",
          "Haskell",
          "Java",
          "JavaScript",
          "Lisp",
          "Perl",
          "PHP",
          "Python",
          "Ruby",
          "Scala",
          "Scheme"
        ];
        $( "#tags" ).autocomplete({
          source: availableTags
        });
      } );
      </script>
    </head>
    <body>
    
    <div class="ui-widget">
      <label for="tags">Tags: </label>
      <input id="tags">
    </div>
    
    
    </body>
    </html>
    

    【讨论】:

    • 感谢您的评论,但我在 div 中包含动态列表
    • 动态列表加载完成后,可以调用invoke函数获取DIVS中的所有文本,创建availableTags数组并传入source。
    猜你喜欢
    • 2017-10-14
    • 2016-07-26
    • 1970-01-01
    • 2012-07-31
    • 2019-03-31
    • 2021-02-05
    • 2021-12-01
    • 2019-05-05
    • 2021-07-19
    相关资源
    最近更新 更多