【问题标题】:Stopping enter submitting a form - getting weird results停止输入提交表单 - 得到奇怪的结果
【发布时间】:2014-02-21 01:59:04
【问题描述】:

谁能帮帮我。

http://www.liquidlizard.net/jobs/search

问题是,尽管单击按钮时它可以正常工作,但由于某种原因,当您点击返回时(尽管发生相同的代码),它不能更新 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.");
        }
    });
}

所以基本上,当我单击提交按钮时,位置会被地理编码,并且 lat & lng 输入会更新,然后表单提交。

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

谢谢

【问题讨论】:

    标签: javascript php jquery html forms


    【解决方案1】:

    您使用的是哪种浏览器?显然,关键事件在浏览器之间的处理方式不同。此外,如果您想停止输入以提交表单,则应使用 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

    【讨论】:

    • 这已经困扰我很久了。感谢您的提示,解决了我所有的问题,现在我今晚可以睡觉了:)
    猜你喜欢
    • 2011-03-01
    • 2022-01-25
    • 2020-10-08
    • 1970-01-01
    • 2016-11-02
    • 2012-05-05
    • 1970-01-01
    • 1970-01-01
    • 2013-08-21
    相关资源
    最近更新 更多