Google Places JavaScript Autocomplete: kann ich die entfernen Sie das Land aus dem Ortsnamen?
Ich habe die folgende jQuery-code, die gut funktioniert mit dem Ausstieg der Stadt-Liste des gewählten Landes.
var city; var place;
$('#city').on('focus',function(){
input = this, options = {
types: ['(cities)'],
componentRestrictions: {
country: $('#country option:selected').val()
}
};
city = new google.maps.places.Autocomplete(input, options);
google.maps.event.addListener(city, 'place_changed', function() {
place = city.getPlace();
$(input).val(place.address_components[0].long_name);
})
})
Grundsätzlich, wenn die person wählt die Stelle, ersetzt er den Wert in der Eingabe-box mit der "city" - Wert ohne das Land.
Sieht es ein wenig blöd mit City, Country
im dropdown-Menü, wenn der Benutzer bereits ausgewählt hat, ein Land, also weiß jemand, ob es möglich ist, sehen Sie NUR den Namen der Stadt, wenn Sie definiert haben, eine componentRestrictions
Wert die Einschränkung der Ergebnisse für ein Land?
Finde ich meine derzeitige Methode der Einstellung, sobald die Auswahl getroffen wurde, um ein bisschen Müll... wirklich...
- Gelesen habe ich über Ihre Frage einige Male, und ich fühle mich nicht wie ich völlig verstehen, was Sie beschreiben. Ich denke, vielleicht wenn Sie einige der markup-würde es geben, die Frage in einen Zusammenhang und allen helfen zu verstehen. Oder vielleicht einen link zu deiner Seite oder ein Beispiel auf jsFiddle?
- In der Regel sprechen, können Sie Bearbeiten, was in das dropdown? Ich meine, wenn der name des Landes ist bekannt,
replace
Sie aus der dropdown-Eintrag angezeigt. - Die dropdown erzeugt wird, durch Google. auch ein fiddle der code nicht funktionieren würde, und ein link zu meiner Seite würde keine Hilfe sein, was-so-ever, da, sobald das problem behoben ist, wäre es nicht auf der Seite angezeigt werden, so dass die Frage nutzlos, wenn es einmal beantwortet, für andere Menschen etwas tun zu wollen wie diese.
- Es ist sehr üblich, für Leute, die hier um links zu teilen oder ein jsFiddle auf die Dinge zu schauen, tiefer und Ideen auszutauschen. Es ist üblich, nach, dass der Prozess zum hinzufügen von follow-up-Kommentare oder Frage/Antwort bearbeitet, um sicher zu sein, dass das, was gelernt worden ist, von diesem Prozess gespeichert ist, zum Wohle aller. Wenn Sie nicht möchten, dass ein link oder ein jsFiddle, es ist cool, aber es macht es schwer für alle zu verstehen, die details von dem, was Sie erreichen wollen oder was die Ursache für dein problem. Wenn Sie es versuchen, ich garantiere, Sie werden sehen, mehr Aktivität auf diese Frage. Nur versucht zu helfen-
- Ich weiß, ich habe Geigen für weitere Fragen, ABER mit Google Places, die API funktioniert nur auf meiner domain, und als solche erfordern würde, ist mir neu konfigurieren der Anwendung. Es würde auch mein tägliches limit von Abfragen während die Menschen versuchen, sich Ihren code!
- Ahhh, jetzt, das macht mehr Sinn. Aber es ist nicht das gleiche wie zu sagen, der Ansatz ist "keine Hilfe, was-so-ever" oder " Rendern "die Frage sinnlos." Leichtigkeit der tude dude; die Menschen sind einfach nur versucht, Ihnen zu helfen. ich habe mich durch Ihre Frage wieder und ich bekomme es jetzt; ich dachte, Sie versuchten, etwas zu tun, tiefer. Sie wollen einfach nur Kontrolle über den Inhalt der
Autocomplete
kommt zurück. Hinzufügen einer Antwort für das wohl der Gemeinschaft.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beim aufrufen der Google-API, geben Sie das Attribut "region":
Dann, wenn Sie erstellen ein
Autocomplete
Objekt, das Land angeben in dascomponentRestriction
- Attribut, so dass es spiegelt die region in der Sie angegeben:region=US
für mich!Auch Sie können sich helfen, indem Sie css - hiding letzten span (=Staat) in der AutoVervollständigen-Element.
Die kurze Antwort ist: der Inhalt in der
Autocomplete
gesteuert von Google (Sie erwähnen das in einem Ihrer Kommentare) und dieAutocomplete
api-doc nicht bieten eine Möglichkeit zum anpassen der Antwort-text, der angezeigt wird, andere als ändern Sie den Platzhalter textdev-guide. Die Lösung, die Sie verwenden, ist die beste option, die Sie haben (und ist wenig reaktiv, aber ich weiß nicht, ob es wirklich "Müll").Andere als, dass, wenn Sie weniger als zufrieden mit diesem Konzept, können Sie immer erstellen Sie einfach Ihre eigenen Eingabebereich und nehmen Sie die vollständige Kontrolle über das Anfrage-Antwort-hin und her selbst. Sie können die Orte, die Bibliothekdev-guide direkt und nehmen Sie die vollständige Kontrolle über alles, was gezeigt wird.
Warte ich 100 milleseconds, und ersetzen Sie dann das Textfeld mit dem Inhalt ich will.
Außer in meinem Fall möchte ich ein leeres Feld, aber legen Sie ein einzelnes Leerzeichen.