【发布时间】:2013-12-22 10:12:16
【问题描述】:
我试图从一个单独的函数中获取 var newtotal 的值,然后通过 Ajax 将该值传递给 PHP 脚本。
这是我的代码:`
function customerCost(){
var newtotal;
var start = document.getElementById('source').value;
var end = document.getElementById('destination').value;
var via = document.getElementById('via').value;
if(via != ""){
var waypts = [];
waypts.push({
location:via,
stopover:false});
var newrequest = {
origin: start,
destination: end,
waypoints: waypts,
travelMode: google.maps.DirectionsTravelMode.DRIVING
};
directionsService.route(newrequest, function(newresponse, newstatus) {
if (newstatus == google.maps.DirectionsStatus.OK) {
var newtotal = 0;
var mynewroute = newresponse.routes[0];
for (i = 0; i < mynewroute.legs.length; i++) {
newtotal += mynewroute.legs[i].distance.value;
}
return newtotal;
}
});
}else{
var newrequest = {
origin: start,
destination: end,
travelMode: google.maps.DirectionsTravelMode.DRIVING
};
directionsService.route(newrequest, function(newresponse, newstatus) {
if (newstatus == google.maps.DirectionsStatus.OK) {
var newtotal = 0;
var mynewroute = newresponse.routes[0];
for (i = 0; i < mynewroute.legs.length; i++) {
newtotal += mynewroute.legs[i].distance.value;
}
return newtotal;
}
});
}
}
然后我从一个单独的函数中调用该值,如下所示:
customertotal = customerCost();
我只收到“未定义”错误。但是,如果我将return newtotal; 替换为alert(newtotal);,那么它会输出正确的值。
我哪里出错了?
【问题讨论】:
标签: javascript