jQuery发送多个请求

时间:2019-09-30 19:57:40

标签: javascript php jquery html

我正在尝试创建一个搜索栏,该搜索栏根据输入的字母发送对提案的请求。 jQuery发送的请求数与输入字母的数量相同。

如果我写“ sa”,则jQuery将发送2个请求。如果我写“ Sa”,则jQuery将发送3个请求(自从我按shift键以来,大字母被计为2个字母。”

代码应按以下说明工作:用户在数据库中写下要查找的内容的名称和代码搜索,并显示所有可能的搜索词。 编辑: 该脚本应发送2个请求:第一个请求将获取所有带有“ sa”的结果。选择结果后。它应该只向数据库发送一个请求以获取其余信息。我的脚本正在做什么:他正在按原样发送第一个请求。第二个请求的发送时间与信件的数量相同。即使只有一个请求就足够

here is also a link to a youtube video which I record to explain the problem

这是我的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 :(得分:0)

我找到了解决办法**

是通过更改

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

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

只需添加

.off('click')

**