我有一些代碼,當點擊搜索框時,地理位置框中的位置(除非已經由autosuggest完成)並且應該提交表單。Jquery - 未提交表單
問題是,單擊搜索按鈕並且地理編碼成功後,表單不會被提交。誰能告訴我我要去哪裏?
這是對的jsfiddle鏈接:http://jsfiddle.net/sR4GR/35/
這是全碼:
$(function() {
var input = $("#loc"),
lat = $("#lat"),
lng = $("#lng"),
lastQuery = null,
autocomplete;
function processLocation(query) {
var query = $.trim(input.val()),
geocoder;
if (!query || query == lastQuery) {
console.log("Empty or same variable");
return;
}
lastQuery = query;
geocoder = new google.maps.Geocoder();
geocoder.geocode({
address: query
}, function (results, status) {
if (status === google.maps.GeocoderStatus.OK) {
lat.val(results[0].geometry.location.lat());
lng.val(results[0].geometry.location.lng());
} else {
alert("We couldn't find this location. Please try an alternative");
}
});
}
autocomplete = new google.maps.places.Autocomplete(input[0], {
types: ["geocode"],
componentRestrictions: {
country: "uk"
}
});
google.maps.event.addListener(autocomplete, 'place_changed', processLocation);
$('#searchform').on('submit', function (event) {
processLocation();
event.preventDefault();
});
});
'event.preventDefault();'可能是問題 – Ramunas
我也這麼認爲,但是我需要這個來阻止沒有位置的表單被提交的表單首先進行地理編碼:s – Jimmy
您是否可以不在文本字段的更改事件上運行processLocation()並在提交值有效之前禁用提交按鈕? – slinky2000