停止输入提交表单 - 获得奇怪的结果

时间:2014-02-21 01:59:04

标签: javascript php jquery html forms

是的,有人可以帮助我。

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输入更新然后表单提交。

该代码也是等待输入密钥,然后使其单击提交按钮,该按钮应按顺序设置相同的代码但由于某种原因,当页面重新加载时,旧的位置在地图上(如果你点击提交新位置就在那里)。谁能告诉我有什么区别以及为什么会这样?

感谢

1 个答案:

答案 0 :(得分:0)

您使用的是哪种浏览器?显然,关键事件在浏览器之间的处理方式不同。此外,如果您想要停止输入以提交表单,则应使用preventDefault()阻止事件进行。

试试这个:

$('.formInputTextPostcode').bind("keyup keypress", function(e) {
    var code = e.keyCode || e.which; 
    if (code  == 13) {
        e.preventDefault();               
        $(this).trigger("enterKey");
    }
});

来自jquery disable form submit on enter