http://www.liquidlizard.net/jobs/search< - 在此页面上我有一个输入,人们可以输入一个位置,当他们点击进入或点击提交按钮时,我运行一个功能来对他们输入的位置进行地理编码,更新一些隐藏的lat lng输入,然后才提交表单。
麻烦的是,虽然单击按钮时它工作正常,但是当你点击返回时(虽然发生相同的代码),它一定不能更新lat lng输入,因为当页面重新加载原始位置而不是地图上的新位置
这是我正在使用的代码:
$('.submitButton').click(function () {
geocodeSearch();
});
$('.formInputTextPostcode').bind("enterKey",function(e){
$(".submitButton").click();
});
$('.formInputTextPostcode').keyup(function(e){
if(e.keyCode == 13)
{
$(this).trigger("enterKey");
}
});
function geocodeSearch(){
geocoder.geocode({
address: $('#postcodeViolet').val()+' UK'
}, function(results, status){
if(status == google.maps.GeocoderStatus.OK){
var geoPoint = new google.maps.LatLng(results[0].geometry.location.lat(), results[0].geometry.location.lng());
map.setCenter(geoPoint);
circle.setCenter(geoPoint);
marker.setPosition(geoPoint);
$('#lattitude').val(geoPoint.lat());
$('#longitude').val(geoPoint.lng());
$("#searchForm").submit();
} else{
alert("Can not geolocate this address.");
}
});
}
所以基本上当我点击提交按钮时,该位置会被地理编码,并且所以lng输入更新然后表单提交。
该代码也是等待输入密钥,然后使其单击提交按钮,该按钮应按顺序设置相同的代码但由于某种原因,当页面重新加载时,旧的位置在地图上(如果你点击提交新位置就在那里)。谁能告诉我有什么区别以及为什么会这样?
感谢
答案 0 :(得分:0)
您使用的是哪种浏览器?显然,关键事件在浏览器之间的处理方式不同。此外,如果您想要停止输入以提交表单,则应使用preventDefault()阻止事件进行。
试试这个:
$('.formInputTextPostcode').bind("keyup keypress", function(e) {
var code = e.keyCode || e.which;
if (code == 13) {
e.preventDefault();
$(this).trigger("enterKey");
}
});