Ecco il mio problema: sto utilizzando il completamento automatico di Google Places per raccogliere informazioni sui luoghi da parte dell'utente.Come cancellare l'input associato al completamento automatico di Google Places?
Nell'evento "place_changed", ho salvato questa informazione. Comunque voglio dare all'utente la possibilità di aggiungere più posti. Quindi, dopo che questo posto è stato salvato, voglio cancellare l'input.
Tuttavia, il completamento automatico di Google sostituisce automaticamente l'ultima voce nel campo di immissione. Ad ogni modo per sbarazzartene?
I dettagli:
var inputDiv = $('#myinput');
var options = {
types: ['(cities)']
};
var autocomplete = new google.maps.places.Autocomplete(inputDiv[0], options);
google.maps.event.addListener(autocomplete, 'place_changed', function() {
var places = autocomplete.getPlace();
savePlaces(places);
console.log(inputDiv.val()); // 'Paris, France'
inputDiv.val('');
console.log(inputDiv.val()); // (an empty string)
setTimeout(function() {
console.log(inputDiv.val()); // 'Paris, France' (It's back!)
inputDiv.val('');
console.log(inputDiv.val()); // (an empty string)
}, 1);
setTimeout(function() {
console.log(inputDiv.val()); // (an empty string)
}, 10);
}
Voi mi direte, così che sembra bene, basta chiaro nel timeout. MA quando clicco via dall'input (perde la messa a fuoco). L'ultima voce ritorna di nuovo!
Qualche idea per sistemarlo? Non ho trovato nella documentazione di Google una funzione come
autocomplete.clear();
Grazie!
Bene funziona! Anche se è abbastanza un hack =) L'unico problema è che "lampeggia" il menu a tendina del completamento automatico durante una frazione di un millisecondo. – Tristan
Sì, l'ho visto. Ma l'unica altra opzione che ho trovato è stata quella di sostituire l'input con un nuovo input e creare un nuovo completamento automatico, ho paura che questo crei perdite di memoria. Puoi provare a impostare la visibilità dell'input su "nascosto" all'inizio e su "visibile" alla fine. –
Mm però non puoi focalizzare su un ingresso nascosto. – Tristan