2017-12-30 10 views
1

문자열 값을 반환하는 자바 스크립트 함수가 있습니다.이 함수는 버튼 클릭시이 함수를 호출 할 때 아무 것도 반환하지 않습니다.Java 스크립트 함수가 값을 반환하지 않습니다.

function PlotMap(StartLat, StartLog, EndLat, EndLog) { 

var map; 
var directionsDisplay; 
var directionsService = new google.maps.DirectionsService(); 
var llList = ""; 

function initMap() { 

    map = new google.maps.Map(document.getElementById('map'), { 
     center: { lat: StartLat, lng: StartLog }, 
     zoom: 15 
    }); 


    directionsDisplay = new google.maps.DirectionsRenderer(); 
    directionsDisplay.setMap(map); 
    calcRoute(); 

} //End function initMap 


function calcRoute() { 
    var start = new google.maps.LatLng(StartLat, StartLog); 
    var end = new google.maps.LatLng(EndLat, EndLog); 
    var bounds = new google.maps.LatLngBounds(); 

    bounds.extend(start); 
    bounds.extend(end); 
    map.fitBounds(bounds); 

    var request = { 
     origin: start, 
     destination: end, 
     travelMode: google.maps.TravelMode.DRIVING 
    }; 

    directionsService.route(request, function (response, status) { 
     if (status == google.maps.DirectionsStatus.OK) { 
      directionsDisplay.setDirections(response); 
      directionsDisplay.setMap(map); 

      if (response.routes && response.routes.length > 0) { 
       var routes = response.routes; 
       for (var j = 0; j < routes.length; j++) { 
        var points = routes[j].overview_path; 
        var ul = document.getElementById("vertex"); 
        for (var i = 0; i < points.length; i++) { 
         var li = document.createElement('li'); 
         li.innerHTML = getLiText(points[i]); 
         ul.appendChild(li); 
         llList = llList + getLiText(points[i]) + "/"; 
        } 
       } 
      } 
     } else { 
      alert("Directions Request from " + start.toUrlValue(6) + " to " + end.toUrlValue(6) + " failed: " + status); 
     } 
    }); 
} //End function calcRoute 

function getLiText(point) { 
    var lat = point.lat(), 
     lng = point.lng(); 
    return "lat: " + lat + " lng: " + lng; 
} 


initMap(); 

return llList;} 

그리고 여기에 내가 asp.net 페이지에서 버튼을 클릭 할 때이 함수를 호출하고 있습니다 :

여기 내 기능 코드입니다.

<script> 

function ii() { 

    var tt = PlotMap(26.547648, 81.529472, 26.612515, 81.354248); 

    alert(tt); 
}</script> 

Asp.net 페이지 코드 :

<body> 
<input id="Button1" type="button" value="button" onclick="ii();"/> 
<div id="map" style="float: left; width: 70%; height: 400px;"></div> 
<ul id="vertex"> 
    <li></li> 
</ul> 

모든 것이 잘 작동하지만, 값을 반환하지 작동합니다. 제발 내가 웹 개발에 새로운 도움이됩니다. 감사.

답변

0

코드에서 로직을 테스트 한 결과 소리가납니다. 당신이 원했던 것처럼 나는 그것을 얻을 수 있었지만 모든 Google지도 논리를 주석 처리해야했습니다.

아래 if 문에 else 문이 없으므로이 문이 false를 반환하면 문자열이 비어 있고 경고되지 않을 것입니다.

if (response.routes && response.routes.length > 0) { 

어쩌면 일치하는 else 문을 추가하십시오 : 이것은 적어도 당신에게 무슨 일이 일어나고 있는지에 좀 더 통찰력을 제공한다

} else { alert("No Routes"); } 

.

function calcRoute() { 
    var start = new google.maps.LatLng(StartLat, StartLog); 
    var end = new google.maps.LatLng(EndLat, EndLog); 
    var bounds = new google.maps.LatLngBounds(); 

    bounds.extend(start); 
    bounds.extend(end); 
    map.fitBounds(bounds); 

    var request = { 
     origin: start, 
     destination: end, 
     travelMode: google.maps.TravelMode.DRIVING 
    }; 

    directionsService.route(request, function (response, status) { 
     if (status == google.maps.DirectionsStatus.OK) { 
      directionsDisplay.setDirections(response); 
      directionsDisplay.setMap(map); 

      if (response.routes && response.routes.length > 0) { 
       var routes = response.routes; 
       for (var j = 0; j < routes.length; j++) { 
        var points = routes[j].overview_path; 
        var ul = document.getElementById("vertex"); 
        for (var i = 0; i < points.length; i++) { 
         var li = document.createElement('li'); 
         li.innerHTML = getLiText(points[i]); 
         ul.appendChild(li); 
         llList = llList + getLiText(points[i]) + "/"; 
        } 
       } 
      } else { alert("No Routes"); } 
     } else { 
      alert("Directions Request from " + start.toUrlValue(6) + " to " + end.toUrlValue(6) + " failed: " + status); 
     } 
    }); 
} //End function calcRoute 
: 여기

은 calcRoute 기능의 새로운 논리입니다