Как получить поле со списком начальной загрузки? - PullRequest
1 голос
/ 26 сентября 2019

Я пытаюсь завершить разработку функции фильтра / поиска, которая позволяет пользователю легко осуществлять поиск по списку для элемента.Мне сказали, что я могу сделать это с помощью комбинированного окна Bootstrap, однако я не видел ни одного, который мог бы отображать пользовательские значения, как только они начинают печатать.Единственные, которые я нашел в Интернете, где вам нужно было нажать кнопку, чтобы увидеть выпадающий список значений.

Это код, который я пытался использовать, он работает, но вместо этого я хотел бы, чтобы он выпал из списка.только когда нажимаю на поиск input field.Я пытаюсь сделать это без кнопки.

Код:

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
</head>
<body>

<div class="container">
  <h2>Filterable List</h2>
  <p>Type something in the input field to search the list for specific items:</p>  
  <input class="form-control" id="myInput" type="text" placeholder="Search..">
  <br>
  <ul class="list-group" id="myList">
    <li class="list-group-item">First item</li>
    <li class="list-group-item">Second item</li>
    <li class="list-group-item">Third item</li>
    <li class="list-group-item">Fourth</li>
  </ul>  
</div>

<script>
$(document).ready(function(){
  $("#myInput").on("keyup", function() {
    var value = $(this).val().toLowerCase();
    $("#myList li").filter(function() {
      $(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)
    });
  });
});
</script>

</body>
</html>

Я пытался добавить эту функцию Javascritpt, но она не работала.

Фрагмент:

function myFunction() {
  document.getElementById("myList").classList.toggle("show");
}

1 Ответ

0 голосов
/ 26 сентября 2019

Вы можете скрыть автоматически, активируя функцию переключения при загрузке страницы.И чтобы показать список, вы можете снова использовать функцию переключения в событии фокуса, а чтобы скрыть его снова, вы можете использовать его в событии фокуса

<script>
        $(document).ready(function(){
         $("#myList").toggle();

        $("#myInput").on("focus", function() {
          $("#myList").toggle();
        });

        $("#myInput").on("focusout", function() {
         $("#myList").toggle();
       });

          $("#myInput").on("keyup", function() {

            var value = $(this).val().toLowerCase();
            $("#myList li").filter(function() {
              $(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)
            });
          });
        });

    </script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...