2016-03-16 65 views
0

如何在將值與數字相乘時刪除字符串。由於谷歌距離計算器中的字母,此代碼錯誤以NaN形式出現。我怎麼能刪除「公里」或結果的末尾多了一些「萬里行」,然後顯示在標籤上這一結果計算距離google距離計算器的距離,然後與數字相乘但

<html xmlns="http://www.w3.org/1999/xhtml"> 
 
<head runat="server"> 
 
    <title></title> 
 
</head> 
 
<body> 
 
    <form id="form1" runat="server"> 
 
    <div> 
 
    
 
     <table border="0" cellpadding="0" cellspacing="3"> 
 
<tr> 
 
    <td colspan="2"> 
 
     Source: 
 
     <input type="text" id="txtSource" value="heathrow terminal 5" style="width: 300px" /> 
 
     &nbsp; Destination: 
 
     <input type="text" id="txtDestination" value="bath road, tw6" style="width: 300px" /> 
 
     <br /> 
 
     
 

 

 

 
     <input type="button" id="calufare" runat="server" value="Get Route" onclick="GetRoute()"/> 
 
     <hr /> 
 
    </td> 
 
</tr> 
 
<tr> 
 
    <td colspan="2"> 
 
     <asp:Label ID="dvDistance" runat="server" Text=""></asp:Label> 
 
     <asp:Label ID="dvDuration" runat="server" Text=""></asp:Label> 
 
     <asp:TextBox ID="rate" runat="server" Text="2.5"></asp:TextBox> 
 
     <asp:Label ID="Fareid" runat="server" Text="Price£ "></asp:Label> 
 

 
     <script> 
 

 
      
 
     </script> 
 
    </td> 
 
</tr> 
 
<tr> 
 
    <td> 
 
     <div id="dvMap" style="width: 1000px; height: 200px"> 
 
     </div> 
 
    </td> 
 
    <td> 
 
     <div id="dvPanel" style="width: 500px; height: 200px"> 
 
     </div> 
 
    </td> 
 
</tr> 
 
</table> 
 

 
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false&libraries=places"></script> 
 
<script type="text/javascript"> 
 
    var source, destination; 
 
    var directionsDisplay; 
 
    var directionsService = new google.maps.DirectionsService(); 
 
    google.maps.event.addDomListener(window, 'load', function() { 
 
     new google.maps.places.SearchBox(document.getElementById('txtSource')); 
 
     new google.maps.places.SearchBox(document.getElementById('txtDestination')); 
 
     directionsDisplay = new google.maps.DirectionsRenderer({ 'draggable': false }); 
 
    }); 
 

 
    function GetRoute() { 
 
     var heathrow = new google.maps.LatLng(51.4711620, -0.4523710); 
 
     var mapOptions = { 
 
      zoom: 7, 
 
      center: heathrow 
 
     }; 
 
     map = new google.maps.Map(document.getElementById('dvMap'), mapOptions); 
 
     directionsDisplay.setMap(map); 
 
     
 
     //*    FOR PRICE CALCULATION       * // 
 
     
 
    
 

 

 

 

 
     //*********DIRECTIONS AND ROUTE**********************// 
 
     source = document.getElementById("txtSource").value; 
 
     destination = document.getElementById("txtDestination").value; 
 

 
     var request = { 
 
      origin: source, 
 
      destination: destination, 
 
      travelMode: google.maps.TravelMode.DRIVING 
 
     }; 
 
     directionsService.route(request, function (response, status) { 
 
      if (status == google.maps.DirectionsStatus.OK) { 
 
       directionsDisplay.setDirections(response); 
 
      } 
 
     }); 
 

 
     //*********DISTANCE AND DURATION**********************// 
 
     var service = new google.maps.DistanceMatrixService(); 
 
     service.getDistanceMatrix({ 
 
      origins: [source], 
 
      destinations: [destination], 
 
      travelMode: google.maps.TravelMode.DRIVING, 
 
      unitSystem: google.maps.UnitSystem.METRIC, 
 
      avoidHighways: false, 
 
      avoidTolls: false 
 
     }, function (response, status) { 
 
      if (status == google.maps.DistanceMatrixStatus.OK && response.rows[0].elements[0].status != "ZERO_RESULTS") { 
 
       var distance = response.rows[0].elements[0].distance.text; 
 
       var duration = response.rows[0].elements[0].duration.text; 
 
       var dvDistance = document.getElementById("dvDistance"); 
 
       dvDistance.innerHTML = ""; 
 
       dvDistance.innerHTML += "Distance: " + distance + "<br />"; 
 
       dvDuration.innerHTML += "Duration:" + duration; 
 
var distanceMeters = response.rows[0].elements[0].distance.value; 
 

 
     rate=document.getElementById('Fareid').innerHTML = rate * distanceMeters; 
 

 
      } else { 
 
       alert("Unable to find the distance via road."); 
 
      } 
 
     }); 
 
    } 
 

 

 
</script> 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
    </div> 
 
    </form> 
 
</body> 
 
</html>

+0

失去測量單位是一個壞主意。如果距離以英里爲單位,並且您計算爲以公里爲單位,那麼您將得到非常不同的價格,反之亦然。另外,爲什麼你不使用谷歌地圖來獲得距離? (不同的算法?) – Tibrogargan

+0

沒有它的只是我想要取出的字母,這不會讓計算完成。 –

+0

向我們展示呈現的代碼。不是服務器端版本。 –

回答

0

試試這個 變種rate = document.getElementById('rate')。value;

  var distanceMeters = response.rows[0].elements[0].distance.value; 

      rate=document.getElementById('Fareid').innerHTML = rate * distanceMeters; 
+0

非常感謝這個 –

0
dvDistance = parseInt(document.getElementById('dvDistance').innerHTML); 
var rate = document.getElementById('rate').value; 
document.getElementById('Fareid').innerHTML = rate * dvDistance; 
+0

它在代碼片段中是相同的,因爲您已給出代碼 –

+0

這是完全不同的。顯然你沒有嘗試它 – Tibrogargan

+0

它有問題,你可以看看我改變,以及 –