Переменная, возвращающая ноль - PullRequest
0 голосов
/ 25 февраля 2012

Я пытаюсь изменить скрипт направления API карт Google v3.Я думал, что у меня есть четкое представление о комбинировании переменных и т. Д., Но затем я столкнулся с этой проблемой:

function calcRoute() {
    var end = document.getElementById("start").value;
    var street = document.getElementById("street").value;
    var city = document.getElementById("city").value;
    var state = document.getElementById("state").value;
    var zip = document.getElementById("zip").value;
    var start = street + ' ' + city + ' ' + state + ' ' + zip;

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

Если я создаю вход с идентификатором начала и изменения

var start =  document.getElementById("start").value; 

Сценарий снова работает.однако я не могу заставить работать мою комбинированную переменную:

var start = street + ' ' + city + ' ' + state + ' ' + zip;

, если я сделаю кнопку, чтобы предупредить (запустить), она возвращает ноль ... что я делаю не так?

ОбновитьТакже обратите внимание:

, если я запускаю:

onClick="alert(end)"

, в то время как

<input id="end" name="destination" type="hidden" value="test" />

предупреждение возвращает «объект HTMLInputElement», а не «тест», как следует.

1 Ответ

1 голос
/ 25 февраля 2012

Если вы хотите предупредить значение «конечного» ввода, вам нужно сделать:

onClick="alert(document.getElementById('end').value)"

Что касается вашей проблемы с нулем, я не верю, что одна из переменных была нулевой, если я попробую это:

null + " " + null

Я получаю " null null " (проверено как на chrome, так и на firefox). Итак, мой вопрос: откуда вы пытаетесь получить доступ к переменной "start"? Это изнутри функции, в которой она была определена внутри или вне ее? Вы не можете получить доступ к этой переменной вне функции calcRoute .

Так что, если вы делаете что-то вроде:

<input type="button" onclick="alert(start)" />

Он обязательно потерпит неудачу, вместо этого сделайте что-то вроде этого:

var start;
function calcRoute() {
    var end = document.getElementById("start").value;
    var street = document.getElementById("street").value;
    var city = document.getElementById("city").value;
    var state = document.getElementById("state").value;
    var zip = document.getElementById("zip").value;
    start = street + ' ' + city + ' ' + state + ' ' + zip;

.....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...