2011-04-07 59 views
1
function getNewMessages(id) 
     { 
      clearJqGrid(); 
      var lat; 
      var lng; 
      var jsonData; 
      var geocoder = new google.maps.Geocoder(); 
      var miles = $('#milesAway').val(); 

      // find what the user is locating by 
      if ($('#zipCode').is(':visible')) 
      { 
       var zipText = $('#zipCode').val(); 
       if (isValidUSZip(zipText)) 
       { 
        geocoder.geocode({ 'address': zipText}, function(results, status) { 
         if (status == google.maps.GeocoderStatus.OK) { 
         lat = results[0].geometry.location.lat(); 
         lng = results[0].geometry.location.lng(); 
         map.setCenter(results[0].geometry.location); 
         } else { 
         alert("Zip Code couldn't be located."); 
         } 
        }); 
       } 
       else 
       { 
        alert('Please enter a valid US zip code.'); 
       } 
      } 
      else if ($('#cityState').is(':visible')) 
      { 
       var address = $('#cityState').val(); 
       geocoder.geocode({ 'address': address}, function(results, status) { 
        if (status == google.maps.GeocoderStatus.OK) { 
         lat = results[0].geometry.location.lat(); 
         lng = results[0].geometry.location.lng(); 
         map.setCenter(results[0].geometry.location); 
        } else { 
        alert("City/State combination couldn't be found."); 
        } 
       }); 
      } 
      else 
      { 
       var latlng = map.getCenter(); 
       lat = latlng.lat(); 
       lng = latlng.lng(); 
       jsonData = 
       { 
        latitude: lat, 
        longitude: lng, 
        milesAway: miles 
       } 
      } 

      $.ajax(
      { 
       type: "POST", 
       url: "<%= Url.Action("CalcLocation", "Home") %>", 
       data: jsonData, 
       success: function (result) { 
        var messages = result; 
        for(var i=0;i<messages.length;i++) 
         jQuery("#responseMessages").jqGrid(
                  'addRowData', 
                  i+1, 
                  {distance:messages[i].distance,age:messages[i].age,message:messages[i].message} 
                 ); 
       }, 
       error: function (error) { 

       } 
      }); 
     } 

因此,只有在經過if語句的「else」部分而不是其他語句時纔會進行AJAX調用。爲什麼?只有在'else'後才能繼續使用Javascript函數

+2

你jsonData分配缺少在最後一個分號,但不應該做的你在說什麼。您的ajax調用的url參數也不會正確使用引號(您需要在外部或內部使用單引號,不能在內部和外部使用相同的類型)。當您在Chrome或Firefox中加載它時,這會給您帶來什麼錯誤嗎?檢查錯誤控制檯。 – Milimetric 2011-04-07 20:54:02

+0

沒有錯誤,當我加載它後,'其他'它運行良好,完美的作品 – Scott 2011-04-07 20:58:10

回答

0

Milimetric實際上說得對,我相信 - 您在jsonData對象字面定義中錯過了分號。這與JavaScript的自動分號插入以及您的大括號{}寫入的方式結合在一起開始,這很可能是問題所在。在那裏放一個分號,它應該可以正常工作。

在其他類似C的語言中,將大括號放在新行或同一行上是個人偏好,但在JavaScript中它確實有所作爲,所以我建議您有意識地將在同一條線上開大括號。

相關問題