Очистить или сбросить геокомплектное управление
Я ищу способ очистить результаты элемента управления geocomplete (версия 1.5.0). Я пробовал различные способы, которые были упомянуты здесь, но безрезультатно.
Идея заключается в том, что когда пользователь очищает поле после ввода имени делового человека, я бы хотел, чтобы geocomplete также сбрасывал его "внутренние компоненты". Прямо сейчас, хотя поле очищает свой ввод, как только оно теряет фокус (пользователь щелкает в другом месте на странице), geocomplete возвращает введенный адрес
<html>
....
<label for="geocomplete">Adress</label><input id="geocomplete" type="search" placeholder="Type you Address here" tabindex="1"/>
....
</html>
<javascript>
...
$("#geocomplete").geocomplete({
map: ".map_canvas",
mapOptions: {
zoom: 14,
scrollwheel: false,
mapTypeId: "roadmap",
streetViewControl:false,
mapTypeControl:false
},
types: ["establishment"],
}).bind("geocode:result", function(event, result) {
// do stuff here
});
//
$('#geocomplete').on('input', function() {
// Field empty... clear content
if($("#geocomplete").val() == "")
{
// Clear
//$('#geocomplete').data().autocomplete.term = null;
//$("#geocomplete").geocomplete().autocomplete()[0].value = "";
}
});
....
</javascript>
1 ответ
Я просто регистрирую прослушиватель событий в поле ввода (всякий раз, когда пользователь печатает в моем случае) и очищаю все мои поля в ответ на него. Обратите внимание: я также вызываю geocomplete('initMap') в конце, чтобы сбросить карту (и я думаю, что также и внутренности geocomplete). Извините за то, что это CoffeeScript, но вы должны понять:
@query_field.bind('input', => @resetLocation())
...
resetLocation: ->
@reference_field.val(null)
@city_field.val(null)
@formatted_address_field.val(null)
$( '#venue_details [name=name]' ).text('')
$( '#venue_details [name=formatted_address]' ).text('')
@query_field.removeClass( 'approved' )
@query_field.geocomplete( 'initMap' )