首页 > 解决方案 > 无法使用 javascript 在隐藏字段中显示值?

问题描述

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 是两个文本字段 id。从文本字段 1 onchange 开始,函数 show() 将起作用,并在 CalcD() 函数中提醒 c 的值。但是我不能将 c 的值传递到 id b 的文本字段中。

标签: javascriptphpjqueryasp.netgoogle-maps-api-3

解决方案


这是因为 b 在 function 中未定义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;
          }
        }
    }
}

推荐阅读