Jquery отправляет несколько запросов - PullRequest
0 голосов
/ 30 сентября 2019

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

Если я пишу "sa", jQuery отправляет 2 запроса. Если я пишу «Sa», jQuery отправляет 3 запроса (большая буква считается как 2 буквы, так как я нажимаю клавишу shift ».

Код должен работать, как в следующих инструкциях: Пользователь пишет имя чегоон хочет найти и код поиска в базе данных и показывает все возможные слова для поиска. РЕДАКТИРОВАТЬ: скрипт должен отправить 2 запроса: первый, чтобы получить все результаты, которые имеют "sa". после выбора результатаОн должен отправить только один запрос в базу данных, чтобы получить остальную информацию. Что делает мой сценарий: он отправляет первый запрос, как и должен. Второй запрос получает отправку в то же время, что и количество писем. даже если достаточно только одного запроса

здесь также есть ссылка на видео YouTube, которое я записываю для объяснения проблемы

Вот мой код jQuery:

$('.sucherInput').on('keyup', function () {
// ** .sucherInput is the class of the input field
var inputValue = $('.sucherInput').val();
var result      = $(".sucherres");
var resultList  = $(".sucherres ul");

if (inputValue.length) {
  console.log(inputValue);

  $.post("action/php/artikelSucher.php", {                   
    name: inputValue

  }).done(function(data){                     
    // Display the returned data in browser
    //console.log(data); 

    resultList.html(data);
    result.show();
  }); //.done

} else{
  console.log("empty");
  resultList.empty();
  result.hide();
}

$(document).on("click", ".sucherres ul li p", function(){
  //set the search bar value as same as the clicked <p> tag
  $('.sucherInput').val($(this).text());

  //clear the Proposals list
  $(resultList).empty();
  $(result).hide();

  //renew the value of the search bar 
  //since im taking the value which have to be searched in the database from the searchbar
  var sucherLastIndex = $('.sucherInput').val();
  console.log("Getting data from database: " + sucherLastIndex);

  //load the data into the HTML file
  $("#updateDiv #info").load("action/php/index-preis-liste.php", {
    name: sucherLastIndex
  });
});

});

Вот код HTML:

<div class="sucher">
     <ul style="width: 100%; margin-bottom: 0;">
         <li style="width: 33%;">
             <input type="text" class="sucherInput" placeholder="Geben Sie einen Suchbegriff ein">
         </li>
     </ul>
     <div class="sucherres">
         <ul>
            <!-- ## HERE COMES THE Proposals ## -->          
         </ul>
  </div>

  <div id="info">

  </div>

1 Ответ

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

Я нашел решение **

, изменив

$(document).on("click", ".sucherres ul li p", function(){

на

$(document).off('click').on("click", ".sucherres ul li p", function(){

, просто добавив

.off ('click')

**

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