2012-03-17 70 views
1

我是一個JavaScript的新手(或任何形式的網頁開發,真的),並無法追查一個錯誤。基本上按下「路由(桌面版本)」按鈕here應該觸發一個函數calcRoutePartOne(),它可以執行此操作。JavaScript刷新頁面,我不知道爲什麼

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。我也有以前的工作代碼,這是幾乎相同除了UI,here

,因爲我開始使用jQuery的問題纔開始,所以我不知道是否有一些錯誤的jQuery導致這種行爲?任何時候頁面都不應該刷新 - 如代碼所示,在到達目的地後它應該重定向到google

謝謝。

編輯:這是可能違規的功能:

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(); 
      } 
     }); 
    } 

或者問題可能,我想,是幾乎所有地方都在頁面上無論是。我只是不知道。

回答

5

JavaScript不是「重新加載」網站,而是HTML代碼中的form。嘗試將onsubmit="return false"添加到form標籤。

+2

爲了解決這個問題,在代碼中加入'$('form')。submit(function(e){e.preventDefault()})'。 – 2012-03-17 09:54:49

+0

GAH!當然就是這樣。現在很明顯,我明白了!謝謝! – 2012-03-17 09:56:16

+0

@Diarmund:因爲你是新來的stackoverflow,不要忘記接受一個複選標記的答案:) – Amberlamps 2012-03-17 10:01:28

1

我沒有時間好好回答,因爲我的妻子將得到交叉,但是...我發現使用console.log("Message blah blah");遠比alert("Message blah blah");那麼煩人,如果你使用Firefox/Firebug的(我建議,如果你不!)。要去...

相關問題