Не удается отобразить значение в скрытом поле с помощью JavaScript? - PullRequest
0 голосов
/ 28 июня 2018
function show(a,b) {
    var origin = document.getElementById('Subadd').value;
    var destination = a.value;
    var service = new google.maps.DistanceMatrixService();

    service.getDistanceMatrix(
        {
          origins: [origin],
          destinations: [destination],
          travelMode: google.maps.TravelMode.DRIVING,
          unitSystem: google.maps.UnitSystem.METRIC,
          avoidHighways: false,
          avoidTolls: false
        }, calcD);
}

function calcD(response, status) {
    if (status != google.maps.DistanceMatrixStatus.OK) {
        alert('Error was: ' + status);
    } else {
        var origins = response.originAddresses;
        var destinations = response.destinationAddresses;
        for (var i = 0; i < origins.length; i++) {
          var results = response.rows[i].elements;
          for (var j = 0; j < results.length; j++) {
              c= results[j].distance.text;
              b.value=c;
          }
        }
    }
}

Здесь a и b - два идентификатора текстового поля. Из текстового поля 1 onchange будет работать функция show () и оповещать значение c в функции CalcD (). Но я не могу передать значение c в текстовое поле с идентификатором b.

1 Ответ

0 голосов
/ 28 июня 2018

Это происходит потому, что b не определено в функции CalcD. Вы должны передать его в функцию или вызвать его напрямую, используя некоторые методы, такие как document.getElementById. Тогда ваш код должен быть примерно таким:

function show(a,b) {
    var origin = document.getElementById('Subadd').value;
    var destination = a.value;
    var service = new google.maps.DistanceMatrixService();

    service.getDistanceMatrix(
        {
          origins: [origin],
          destinations: [destination],
          travelMode: google.maps.TravelMode.DRIVING,
          unitSystem: google.maps.UnitSystem.METRIC,
          avoidHighways: false,
          avoidTolls: false
        }, calcD);
}

function calcD(response, status) {
    if (status != google.maps.DistanceMatrixStatus.OK) {
        alert('Error was: ' + status);
    } else {
        var origins = response.originAddresses;
        var destinations = response.destinationAddresses;
        for (var i = 0; i < origins.length; i++) {
          var results = response.rows[i].elements;
          for (var j = 0; j < results.length; j++) {
              c= results[j].distance.text;
              b = document.getElementById('id of b input');
              b.value=c;
          }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...