Javascript刷新页面,我不知道为什么

时间:2012-03-17 09:46:16

标签: javascript jquery

我是javascript的新手(或任何类型的网络开发,真的),并且无法追踪错误。基本上按下“Route(桌面版)”按钮here应该触发一个函数calcRoutePartOne(),它就是这样做的。

function calcRoutePartOne()
    {
        alert("calcRoutePartOne");
        shortestTimeIndex = "undefined";
        lowestTotalCost = "undefined";
        shortestDistanceIndex = "undefined";
        shortestDistance = "undefined";
        alert("Alert B");
        displayLoadingImage();
        alert("Alert C");
        var startText = document.getElementById("start").value;
        alert(startText);
        geocoder.geocode( 
        { 
            'address':startText
        }, 
        function(results, status)
        {
            if (status == google.maps.GeocoderStatus.OK)
            {
                start = results[0].geometry.location;
                alert(start);
                calcRoutePartTwo();
            }
            else
            {
                alert("Failed to geocode start address \n Error: " + status);
                hideLoadingImage();
            }
        });
    }

这个函数对我来说很好,所有的警报都应该按照它们的方式启动,但是然后不是调用calcRoutePartTwo()页面只是刷新[编辑:现在它有时会到达calcRoutePartTwo然后刷新,这也不是它应该做的事情。

特别令人费解的是,我之前已经使用过此代码了 - 目前我只是在进行重构,并在UI上工作,所以我不明白这是如何突然发生的。

我遇到问题的代码我有here。我还有以前工作的代码,除了用户界面here

之外几乎完全相同

自从我开始使用jquery以来问题才开始,所以我想知道jquery中是否存在导致此行为的错误?该页面根本不应该刷新 - 在代码中,它应该在到达终点后重定向到谷歌

感谢。

编辑:这是可能违规的功能:

function calcRoutePartTwo()
    {
        alert("calcRoutePartTwo");
        var endText = document.getElementById("end").value;
        geocoder.geocode( 
        { 
            address: endText
        }, 
        function(results, status)
        {
            if (status == google.maps.GeocoderStatus.OK)
            {
                end = results[0].geometry.location;
                console.log(end);
                calcRoutePartThree();
            }
            else
            {
                alert("Failed to geocode end address \n Error: " + status);
                hideLoadingImage();
            }
        });
    }

或者问题可能,我猜,几乎可以在页面上的其他任何地方。我不知道。

2 个答案:

答案 0 :(得分:5)

JavaScript不是“重新加载”网站,而是HTML代码中的form。尝试将onsubmit="return false"添加到form代码。

答案 1 :(得分:1)

我没时间回答正确,因为我的妻子会越过,但是...如果你使用的是Firefox / Firebug,我觉得使用console.log("Message blah blah");远比alert("Message blah blah");烦恼我推荐,如果你不是!)。得走了......