Autocomplete Google Cannot read property 'address_components'

Fermé
ryuzaki3698 Messages postés 22 Date d'inscription mardi 26 février 2013 Statut Membre Dernière intervention 25 janvier 2021 - Modifié le 9 nov. 2018 à 17:09
Bonjour,

J'ai un problème depuis plusieurs jours et ce serait super si quelqu'un avait un indice à me donner.

Si je n'initialise pas l'autocomplete dans initAutocomplete() mais que je le met dans un onkeypress comme suit :

(Je vérifie si la permission de gélocalisation est activé, si oui je geolocalise et j'initialise l'objet autocomplete, si non, j'attend qu'il y est 6 caractères dans le champs texte et après j'initialise l'objet autocomplete)

function autocompletePlus() {

  navigator.permissions && navigator.permissions.query({name: 'geolocation'}).then(function(PermissionStatus) {

    if (PermissionStatus.state == 'granted') {

      autocomplete = new google.maps.places.Autocomplete(
      /** @type {!HTMLInputElement} */(document.getElementById('autocomplete')),
      {types: ['geocode']});

      if (navigator.geolocation) {
      navigator.geolocation.getCurrentPosition(function(position) {
        var geolocation = {
          lat: position.coords.latitude,
          lng: position.coords.longitude
        };
        var circle = new google.maps.Circle({
          center: geolocation,
          radius: position.coords.accuracy
        });
        autocomplete.setBounds(circle.getBounds());
      });
    }

      // When the user selects an address from the dropdown, populate the address
      // fields in the form.
      autocomplete.addListener('place_changed', fillInAddress);

    } else {

      var valAdresse = $("#autocomplete").val().length;

      if (valAdresse > 6) {

        // Create the autocomplete object, restricting the search to geographical
        // location types.
        autocomplete = new google.maps.places.Autocomplete(
        /** @type {!HTMLInputElement} */(document.getElementById('autocomplete')),
        {types: ['geocode']});

        // When the user selects an address from the dropdown, populate the address
        // fields in the form.
        autocomplete.addListener('place_changed', fillInAddress);
      }
    }
});

}


EDIT : Correction des balises de code

Lorsque je clique sur une suggestion d'adresse, la fonction fillInAddress() qui replace les info dans les bon input me sort cette erreur : "Cannot read property 'address_components' of undefined".

PS : Si j'initialise l'objet autocomplete dans initAutocomplete() et que j'enlève autocompletePlus() (qui est appelé par un onkeypress) tous marche.

Merci d'avance si quelqu'un à une idée.
A voir également: