2016-09-29 2 views
1

Ich versuche, Marcopolo zu implementieren, die ein JQuery-Plug-in ist, um automatisch abzuschließen.So implementieren Sie die automatische Vervollständigung mit jquery marcopolo

Hier sind meine zwei Fragen.

1) Wenn ich einen einzelnen Buchstaben oder ein Wort eintippe, werden alle Werte für "Direction" angezeigt, was nicht korrekt ist. Ich möchte zum Beispiel, wenn ich nach "Up" suche, irgendwelche Wörter mit diesen zwei Buchstaben erscheinen.

2) Wenn ein Benutzer nach "Up" sucht und er die Eingabetaste drückt oder auf die Senden-Schaltfläche klickt, sollte er zu der mit diesem Wort verknüpften URL weitergeleitet werden.

Github Referenz: https://github.com/jstayton/jquery-marcopolo
Marcopolo Beispiel: http://jstayton.github.io/jquery-marcopolo/example1.html

Und hier ist mein 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'); 
      } 
    }); 

}); 

Vielen Dank für Ihre Hilfe!

Antwort

0

Das Problem ist, dass Sie die Variable "q" mit dem Inhalt des Elements <input/> senden, aber die Seite, die Sie als eine JSON-Antwort konfiguriert ist nichts mit dieser "q" Variable filtern, so werden Sie immer erhalten das gleiche Ergebnis.

[{"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

Entschuldigung, neu zu dieser JSON-Sache. Ich sehe den Code auf https://gist.github.com/jstayton/1008099. Genau wie Zeile 35 des Codes, muss ich "param: 'query'" in der JS hinzufügen? Oder muss ich etwas in der JSON-Datei aktualisieren? Vielen Dank! – user2428993

+0

Marcopolo sendet die Daten, die Sie in die Textbox eingeben, an den Server. Dabei wird davon ausgegangen, dass der Server Ihre Ausgabe filtert, aber nie gefiltert wird. Der Server gibt dann immer die gleiche zurück. –

Verwandte Themen