2017-10-16 4 views
-1

TL; DR - Weiß jemand, was die ID zum Dropdown-Menü für Google Maps Autocomplete ist?Google Maps Autocomplete - Finden Sie Autovervollständigung HTML als jQuery Selektor verwenden


Ich verwende Google Maps in einem Formular auf meiner Website. Ich möchte jQuery verwenden, um den Benutzer daran zu erinnern, eine Option aus den in den Autocomplete-Optionen von Google angegebenen Optionen auszuwählen. Wenn der Benutzer auf die Eingabe klickt, aber keine der Optionen auswählt, möchte ich die Benachrichtigung anzeigen.

Allerdings kann ich nicht finden, die ID zu der Liste der Optionen, die auftaucht. (Oder div oder anderer HTML-Code für diese Angelegenheit.) In den Elementen für diese Optionen wird nichts angezeigt.

Zum Beispiel:
Google Maps Autocomplete

Hier ist mein Code:

HTML

<label for="title" class="form-title">Location</label> 
<div class="form-row"> 
    <div class="form-group"> 
    <label>Street Address</label> 
    <input type="text" id="formatted_address" name="formatted_address"> 
    </div> 
    <div id="my_map"></div> 
</div> 

Javascript
Bibliotheken

<script src="https://maps.googleapis.com/maps/api/js?key=MYKEY&libraries=places&language=en"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/geocomplete/1.7.0/jquery.geocomplete.min.js"></script> 

-Code

 $("input#formatted_address").geocomplete({ 
      details: "form", 
      map: "#my_map" }); 

Dank!

+0

Verwenden Sie "jQuery UI" ?. jQuery hat kein Autocomplete-Widget. Die [Autovervollständigung] von jQuery UI (http://api.jqueryui.com/autocomplete/) hat einen 'select' Callback. Sie können den Parameter 'event' verwenden, um das Listenelement zu finden, und schließlich die ID. Nicht 100% sicher, aber so etwas sollte funktionieren: 'var selected_item_id = $ (event.target) .attr ('id');' –

+0

@AlmostPitt versuche meine Lösung – krishnar

+0

Verwenden Sie die Google Maps JavaScript API v3? Eine eingebettete Google Map? (Wie sieht der Code für die Karte aus?) – geocodezip

Antwort

0

hinzufügen Zuhörer auf Ihre automatische Vervollständigung Eingang element.This wird feuern, wenn Benutzer wählen Sie die Option aus Dropdown der automatischen Vervollständigung Liste

//Declare variable to identify option from autocomplete selected or not 
var selected_from_autocmp_flag = false; 

address_element = new google.maps.places.Autocomplete($("#input_element_id")); 
address_element.addListener('place_changed', place_changed); 

function place_changed(){ 
    // set flag to true 
    selected_from_autocmp_flag = true; 
} 

$("#input_element_id").click(function(){ 
    // set flag to false whenever user clicks it 
    selected_from_autocmp_flag = false; 
}) 

Eingabe Unter der Annahme haben Element in HTML-Seite wie unten

<input type=text id="input_element_id" placeholder="search here"/> 
+1

Vielen Dank für Ihre Antwort @Krishnar. Leider bekomme ich die Fehler: InvalidValueError: keine Instanz von HTMLInputElement und Uncaught TypeError: a.getAttribute ist keine Funktion. – AlmostPitt

+1

@AlmostPitt Bruder hast du eingefügt, wie es ist? Sie sollten Ihre Element-ID anstelle von input_element_id ersetzen. Überprüfen Sie den aktualisierten Code. – krishnar

+0

Gute Frage. Nein, ich habe es geändert, um die richtige ID hinzuzufügen. Eigentlich kann ich jetzt sehen, dass ich "formatierte_Adresse" bekomme, wenn ich auf dieses Eingabefeld klicke, aber dann "undefiniert", wenn ich eine der Optionen auswähle. Ich habe immer noch die Fehler. – AlmostPitt

Verwandte Themen