2016-09-29 65 views
1

我試圖實現marcopolo,這是一個jQuery插件來做自動完成。如何實現自動完成使用jquery marcopolo

這是我的兩個問題。

1)如果我輸入單個字母或任何單詞,將出現「方向」的所有值,這是不正確的。例如,如果我搜索「向上」,則會出現帶有這兩個字母的任何單詞。

2)如果用戶搜索「Up」並且他們按回車或點擊提交按鈕,他們應該被帶到與該單詞關聯的URL。

Github的參考:https://github.com/jstayton/jquery-marcopolo
馬可波羅例如:http://jstayton.github.io/jquery-marcopolo/example1.html

這是我的codepen:http://codepen.io/anon/pen/rrwgwJ

HTML

<input type="text" name="autoCom" id="autoCom"><input type="submit" class="send"> 

CSS

ol {position: absolute; top: 20px;} 
ol.mp_list {list-style-type: none;} 

JS

$(function(){ 

$('#autoCom').marcoPolo({ 
     url: 'https://api.myjson.com/bins/ygdk', 
     minChars: 1, 
     submitOnEnter: true, 
      formatData: function (data) { 
       return data; //possible issue 
      }, 
     formatItem: function (data, $item) { 
      return data.Direction; 
      }, 
      onSelect: function (data, $item) { 
     //window.location = data.URL; 
     this.val(data.Direction); 
     window.open(data.URL,'_blank'); 
      } 
    }); 

}); 

感謝您的幫助!

回答

0

問題是,您發送的「q」變量的<input/>元素的內容但您配置爲JSON響應的頁面沒有過濾任何含有該「q」變量的值,因此,您將始終得到相同的結果。

[{"Direction":"Up","URL":"http://www.google.com"},{"Direction":"Left","URL":"http://www.cnn.com"},{"Direction":"Right","URL":"http://www.engadget.com"},{"Direction":"Down","URL":"http://www.twitter.com"},{"Direction":"Upward","URL":"http://www.facebook.com"},{"Direction":"Leftwing","URL":"http://www.snapfish.com"},{"Direction":"Rightwing","URL":"http://www.gizmodo.com"},{"Direction":"Downward","URL":"http://www.fox.com"}] 
+0

對不起,這個JSON的新東西。我正在查看https://gist.github.com/jstayton/1008099上的代碼。就像代碼的第35行一樣,我是否需要在JS中添加「param:'query'」?或者有什麼我需要在JSON文件中更新?謝謝! – user2428993

+0

Marcopolo將您在文本框中鍵入的內容發送到服務器,假設服務器將過濾您的輸出,但它永遠不會被過濾,然後服務器始終返回相同的結果。 –

相關問題