2014-10-31 73 views
2

所以我用Google搜索,在這裏搜索,到處去,我找不到答案。我正在使用jQuery UI自動完成來搜索項目ID號碼列表。它們可以是從1任意長度 - 99999自動完成功能不會在第一次輸入時觸發

的問題:

當我鍵入「2」,例如,什麼也沒有發生,然後我打了退格鍵和類型的「2」再次和這個時候,任何事情開始2出現在下面,事件顯示在開發人員工具的「網絡列表」中。此外,當我搜索1時,只有1出現,但它不執行搜索,它只是吐出輸入值。但是當我點擊退格鍵並再次輸入1時,搜索會觸發,並且我得到的結果與我2中的結果相同。通常,無論輸入什麼數字,它都應該只是在默認情況下才會觸發?如何糾正此問題並使我的自動填充功能正常工作。

CODE:

$('.item-inventory').on('keyup', '#item_num', function(){ 
     //var search = $(this); 
     var itemname; 
     var itemprice; 
     var itemdesc; 
     $(this).autocomplete({ 
      delay : 100, 
      source: function(request, response){ 
       $.ajax({ 
        url: '../assets/server/orders/item_search.php', 
        dataType: 'JSON', 
        data: {search: request.term}, 
        success: function (data){ 
         var keys = data.search; 
        // $('#item-name').val(data.search[0].item); 
        // itemPrice = data.search[0].price; 
        // itemDesc = data.search[0].desc; 
         response($.map(keys, function(i){ 
          return{ 
           label : i.id 
          }; 

         })); 

        } 
       }); 
      }, 
      minLength : 1 
     }); 
     //$('#item-search-results').removeClass('hidden'); 
     $(this).on('autocompleteselect', function(event, ui){ 
      $('#item-search-results').removeClass('hidden'); 
     }); 
    }); 
+2

您每次'keyup'事件都會重複「autocomplete」。這不是要走的路:(你能提供樣本HTML嗎? – 2014-10-31 16:43:03

+0

當我在另一個輸入字段中使用此方法時,我沒有看到任何問題。 – 2014-10-31 16:44:28

+0

這並不意味着它是a)正確或b)改變它是解決你的問題:) – 2014-10-31 16:45:02

回答

1

基本上你是連接第一按鍵後自動完成(這是爲時已晚,在第一次按鍵)。您在每次按鍵時都會重新連接它。

您需要在啓動時將自動完成連接到任何相關元素。

例如將鍵盤處理這個之外:

$('.item-inventory #item_num').autocomplete({ 
     delay : 100, 
     source: function(request, response){ 
      $.ajax({ 
       url: '../assets/server/orders/item_search.php', 
       dataType: 'JSON', 
       data: {search: request.term}, 
       success: function (data){ 
        var keys = data.search; 
       // $('#item-name').val(data.search[0].item); 
       // itemPrice = data.search[0].price; 
       // itemDesc = data.search[0].desc; 
        response($.map(keys, function(i){ 
         return{ 
          label : i.id 
         }; 

        })); 

       } 
      }); 
     }, 
     minLength : 1 
    }); 
+0

你可以添加一個代碼示例嗎? – 2014-10-31 16:50:50

+0

這正是我所做的,我讀了你的第一個評論,並把兩個和兩個放在一起,給它五分鐘,我會接受 – 2014-10-31 16:51:58

+0

再次感謝你的幫助,我再次學到了新的東西! :) – 2014-10-31 16:59:46

0

,你可以添加更多的事件的keydown喜歡這裏:

$('.item-inventory').on('keyup keydown', '#item_num', function(){ 
........ 
}); 
0

如果沒有正常工作,然後在頁面加載調用自動完成功能,用繩子的空數組。 例如$(「input」)。each(function(){$(this).autocomplete({src:[]});}); 現在,這也將在第一次按鍵。好運。

相關問題