Google Places Autocomplete Kraft Auswahl
Ich bin mit dem JavaScript von Google places autocomplete-API v3. Es funktioniert gut, aber ich Frage mich, ob es eine Möglichkeit zu zwingen, die Auswahl aus dem "AutoVervollständigen", die Eingabe wird nicht akzeptieren, jede freie form text. Ich schaute auf die docs nicht sehen, wie eine option, aber dachte, ich würde Fragen, nur um sicher zu sein. Ich bin sicher, ich könnte einen Weg, es zu tun mit etwas JavaScript-aber würde lieber einen bereits integrierten Methode, wenn es verfügbar ist. Danke!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Google Places-API derzeit nicht unterstützt dieses feature. Wenn Sie glauben, dies wäre ein nützliches feature, senden Sie bitte eine Orte API - Feature Request.
Eigentlich, was wir Taten, war Folgendes:
- Jedes mal, wenn ein Standort ausgewählt wird aus der Auto-vervollständigen Liste haben, nehmen wir füllen einige versteckte Felder mit einigen Feldern aus der JSON-Antwort (name der Stadt, Land, name, Längen-und Breitengrad)
- Wenn das Formular abgeschickt wird, überprüfen wir, ob diese Felder Werte haben, wenn Sie nicht, es bedeutet, dass der Benutzer statt der Auswahl eines Standorts aus der Liste, die er gerade eingegeben Wert selbst.
Es ist nicht die Lösung des Problems in einer JS Weg, aber immer noch, es funktioniert der trick einwandfrei!
Enter
dieplace_changed
event wird geworfen, und das Objekt zurückgegeben werden, die mit einer einzelnen Eigenschaft name mit dem eingegebenen text.Folgende Lösung hat den trick für mich (mit jQuery). Die Idee ist, die
blur()
Veranstaltung zu zwingen, die zuletzt ausgewählte Adresse aus, sobald der Eingang den Fokus verliert.Fügen wir ein timeout zu verhindern, dass ein Konflikt zwischen den
blur
und dieplace_changed
Veranstaltungen.Betrachten Sie den folgenden html-Code:
Und den folgenden javascript-Code :
Ich hoffe, das hilft.
Ich hatte das gleiche problem, unten ist eine Funktion, die mir kam, als work-around. Dies könnte verwendet werden, in Kombination mit einer Veranstaltung wie onchange oder onkeyup. Hoffe, es hilft!
//Arguments:
address - string containing the place that you want to validate
address_success_div - div object specifically used for displaying validation
Quiting der Wert, wenn die input-ändert für mich funktioniert. Es zwingt zur Nutzung von Google Stellen.
Hia
Ich habe es geschafft, zu tun, dass durch die Schaffung der autocomplete-Objekt jedes mal, wenn der Benutzer den Fokus das Eingabefeld ein, und überprüfen Sie den Wert jedes mal, wenn Sie blured:
Ich das problem gelöst, die Kombination der Vorschläge, auf ein paar andere Antworten hier ab. Mein Textfield, wo die Eingaben des Benutzers die Adresse genannt wird txtPlaces. Hier ist mein code:
Diese richtig zu reagieren, um Eingabe-oder Tab-Tasten, sowie, wenn der Benutzer wählt ein anderes Feld. Hoffe, das hilft!
WTF, Leute?!?!? Google oft nicht die richtige info. Verwenden Sie nicht Ihre autocomplete-API für Zwangs-Auswahl! Dies ist der Grund, warum eine Tonne von websites, die es mir nicht ermöglichen, Ihre Dienste nutzen: ich Lebe irgendwo, wo der Google-Schrauben die Adresse. Und ich bin nicht alleine.
Verwenden USPS address validation, wenn Sie müssen — zumindest sind Sie up to date. Im Idealfall erlauben, AutoVervollständigen, aber erlauben die manuelle override, aufhören, faul und machen das Leben schwer für so viele von uns!