以下是我的問題:我正在使用Google商家信息自動填充來收集用戶有關地點的信息。如何清除綁定到Google Places自動填充的輸入?
在事件「place_changed」上,我保存了這些信息。不過,我想給用戶添加多個位置的可能性。所以在這個地方保存後,我想清除輸入。
但Google自動完成會自動替換輸入字段中的最後一個條目。無論如何擺脫這一點?
細節:
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);
}
你會告訴我,很好,看起來不錯,只是清除它在超時。 但是當我點擊輸入(它失去了焦點)。最後一個條目又回來了!
任何想法解決這個問題? 我還沒有在谷歌文檔中找到一個函數,如
autocomplete.clear();
謝謝!
好吧,它確實有效!雖然它相當黑客=)唯一的問題是它在幾分之一毫秒內「閃爍」自動完成下拉菜單。 – Tristan
是的,我見過。但我發現的唯一的其他選擇是用新輸入替換輸入並創建一個新的自動完成,我擔心這會造成內存泄漏。您可以嘗試將輸入的可見性設置爲在開始處「隱藏」,並在結尾處將輸入設置爲「可見」。 –
雖然你不能專注於隱藏的輸入。 – Tristan