2014-06-12 48 views
0

我想要使用哪一個我從這裏https://github.com/devbridge/jQuery-Autocomplete顯示自動完成下拉列表基於鍵碼

了jQuery的自動完成庫這裏是從演示

$('#autocomplete').autocomplete({ 
     lookup: countriesArray, 
     minChars: 0, 
     onSelect: function (suggestion) { 
      $('#selection').html('You selected: ' + suggestion.value + ', ' + suggestion.data); 
     } 
    }); 

原代碼後,但我需要的建議列表下拉到後,我進入了關鍵@(鍵碼64)才顯示,所以這裏就是我所做的:

$('#autocomplete').keypress(function(event){ 
     var keycode = (event.keyCode ? event.keyCode : event.which);    

     if(keycode == 64){ //for @ 

      $('#autocomplete').autocomplete({ 
       lookup: countriesArray, 
       minChars: 1, 
       onSelect: function (suggestion) { 
        $('#selection').html('You selected: ' + suggestion.value + ', ' + suggestion.data + ', ' + keycodekeycode); 
       } 
      }); 
     } 
    }); 

但現在的問題是下拉列表永遠不會出現。沒有錯誤也被發現。然而,如果我把類似

$('#autocomplete').keypress(function(event){ 
     var keycode = (event.keyCode ? event.keyCode : event.which);   
     var test = "1234"; 
     if(test== "1234"){ //for @ 

      $('#autocomplete').autocomplete({ 
       lookup: countriesArray, 
       minChars: 1, 
       onSelect: function (suggestion) { 
        $('#selection').html('You selected: ' + suggestion.value + ', ' + suggestion.data + ', ' + keycodekeycode); 
       } 
      }); 
     } 
    }); 

下拉建議列表將出現沒有任何問題。任何想法我在這裏想念什麼?

tq

+0

也許是因爲你必須按「@」來執行自動完成,並有沒有可以用char'@'找到的結果。也許你可以在自動完成之前在按鍵之後刪除字符'@' – Kyojimaru

+0

dangggggggggg ......必須是它!但是如何從搜索參數中刪除char @?因爲我確定不希望從文本框 – imin

+0

中刪除char @,而是使用您使用的jQuery插件的Ajax查找,或者嘗試從您提供的頁面中獲取非標準查詢/結果。我不知道結果,但如果你使用插件的非標準查詢/結果,因爲我從來沒有使用過這個jQuery。我自己更喜歡使用Ajax查找。 – Kyojimaru

回答

0

您是否解決了問題?如果沒有,這裏有你想要JSFIDDLE

什麼小提琴後,我通過插件讀,我發現,你可以找到的建議,然後操縱搜索查詢,所以你需要的是增加

lookupFilter: function(suggestion, query, queryLowerCase) { 
if (showResult) 
    return suggestion.value.indexOf(query.replace('@', '')) !== -1; 
else 
    return false 
}, 

和如果你看到,我的自動完成申報放在外面,因爲你只需要創建一次自動完成,並決定顯示或不自動完成本身的結果

+0

這件事情並沒有真正的工作,因爲它會在輸入字段中刪除「@」,並將在輸入字段的開頭顯示的建議列表,並在其中刪除了所有內容 – imin

+0

你是什麼「的意思它將刪除輸入字段中的'@',因爲'@'仍然出現在JSFIDDLE中的輸入字段中。在輸入字段開始顯示後,它並沒有刪除所有內容,而是先過濾它是否有匹配沒有'@'的輸入的結果。現在你使用jQuery的本地建議或建議了,你有沒有解決它? – Kyojimaru

相關問題