2017-10-16 37 views
-1

TL; DR - Est-ce que quelqu'un sait quel est l'ID du menu déroulant pour Google Maps Autocomplete?Google Maps Saisie semi-automatique - Recherche HTML complétant pour utiliser comme sélecteur jQuery


J'utilise Google Maps dans un formulaire sur mon site. Je voudrais utiliser jQuery pour rappeler à l'utilisateur de sélectionner une option parmi celles listées dans les options de saisie semi-automatique que Google vous donne. Si l'utilisateur clique sur l'entrée, mais ne sélectionne pas l'une des options, je souhaite afficher la notification.

Cependant, je n'arrive pas à trouver l'ID dans la liste des options qui apparaissent. (Ou div, ou autre HTML d'ailleurs.) Rien n'apparaît dans les éléments pour ces options.

Par exemple:
Google Maps Autocomplete

Voici mon 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
Bibliothèques

<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" }); 

Merci!

+0

Incluez-vous 'jQuery UI'? jQuery n'a pas de "widget" à saisie semi-automatique. L'interface utilisateur de jQuery [autocomplete] (http://api.jqueryui.com/autocomplete/) a un rappel 'select'. Vous pouvez utiliser le paramètre 'event' pour trouver l'élément de liste, et enfin son identifiant. Pas sûr à 100%, mais quelque chose comme ça devrait fonctionner: 'var selected_item_id = $ (event.target) .attr ('id');' –

+0

@AlmostPitt essayer ma solution – krishnar

+0

Utilisez-vous l'API Google Maps Javascript v3? Une carte Google intégrée? (à quoi ressemble le code de la carte?) – geocodezip

Répondre

0

Ajouter à votre écoute element.This entrée saisie semi-automatique se déclenche chaque fois que l'utilisateur sélectionnez l'option de menu déroulant de la liste Autocomplete

//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; 
}) 

En supposant que vous avez élément d'entrée dans la page HTML comme ci-dessous

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

Merci pour votre réponse @Krishnar. Malheureusement, j'obtiens les erreurs: InvalidValueError: pas une instance de HTMLInputElement et Uncaught TypeError: a.getAttribute n'est pas une fonction. – AlmostPitt

+1

@AlmostPitt Frère avez-vous collé comme il est? Vous devriez remplacer votre ID d'élément à la place de input_element_id. Vérifiez le code mis à jour. – krishnar

+0

Bonne question. Non, je l'ai changé pour ajouter l'identifiant correct. En fait, maintenant je peux voir que je reçois "formated_address" quand je clique sur cette boîte de saisie, mais ensuite "indéfini" quand je sélectionne l'une des options. J'ai toujours les erreurs, cependant. – AlmostPitt