更改HTML属性值

时间:2013-06-01 17:39:58

标签: php javascript html

我需要在运行JS函数后更改窗体中隐藏类型的值。距离的值似乎是正确的。但是当我在下一页中访问$ _POST ['distance']时它的分配似乎没有用,它仍然返回1000而不改变值。请帮忙。

<script type="text/javascript">
function calcRoute() {
    var start = "1255 E University Dr, Tempe, AZ 85281";
      var end = "KPMG, 60 E Rio Salado Pkwy, Tempe, AZ 85281";
      var request = {
        origin:start,
        destination:end,
        travelMode: google.maps.TravelMode.DRIVING
      };
      directionsService.route(request, function(result, status) {
        if (status == google.maps.DirectionsStatus.OK) {
            window.distance = result.routes[0].legs[0].distance.value;
            alert(window.distance);             
          directionsDisplay.setDirections(result);
        }
      });
   document().getElementById('distance').value = window.distance;
}
</script>
<button type="button" class="btn" onclick="calcRoute()">calc</button>
<form method="post" action = "getdist.php">
<input type = "hidden" name="distance" id="distance" value="1000">
<input type="submit" value="Submit">
</form>

1 个答案:

答案 0 :(得分:3)

尝试使用document.getElementById('distance').value = window.distance;代替:)

此外,您应该可以将该语句放在您指定window.distance的函数中,因为当解释器到达calcRoute行时,将调用document.getElementById()事件,其中您实际分配了一行。 window.distance的值是一个传递给directionsService.route的回调函数,因此当你尝试获取它时,无法知道window.distance实际上会有一个值,因为只要directionsService.route决定调用它就可以调用回调函数。

请记住,javascript是异步的。