我正在使用谷歌的自动完成 api,就像在文档中一样,它工作正常。但是,每次更改时,我都会使用 ajax 提交一个表单。它工作正常,但是当我使用鼠标自动完成该位置时(单击选择一个位置)。它在设置位置之前触发 onchange 并提交表单。
我怎样才能阻止这种行为?我的意思是在鼠标点击自动完成后提交。
这是一个例子:http: //jsfiddle.net/8GnZB/2/
$(document).ready(function () {
$location_input = $("#location");
var options = {
types: ['(cities)'],
componentRestrictions: {
country: 'be'
}
};
autocomplete = new
google.maps.places.Autocomplete($location_input.get(0), options);
$("#search_form input").change(function () {
var data = $("#search_form").serialize();
/* Serialize form & send it to the search view */
show_submit_data(data);
return false;
});
});
function show_submit_data(data) {
$("#result").html(data);
}
<script type="text/javascript"
src="https://maps.googleapis.com/maps/api/js?libraries=places&sensor=true"></script>
<form id="search_form" action="" method="post" >location :
<input id="location" name="location" type="text" />
<br/>data:
<input id="data" name="data" type="text" />
</form>Sent data :
<div id="result"></div>
到目前为止,我设法解决的唯一工作是change()
事件超时,但有点难看。