输入字段无法识别动态数据

时间:2017-02-17 10:46:38

标签: javascript jquery html

我有一个反向地理位置代码,它返回一个格式化的地址,然后我将动态添加到谷歌地图地址字段,该字段应自动更新地图。问题是谷歌地图将更新的唯一方法是,如果我在输入字段中添加空格键或任何类型的输入,就好像它无法识别我通过document.getElementById动态添加的数据。('地址'。)=值

我试图模拟输入字段的关键事件,使其相信有数据添加,我试图使用谷歌api只是手动刷新没有效果的地图,我试图拆分字符串是添加它后添加以查看它是否识别出更改,我还尝试将输入字段的长度设置为+ 1以查看是否有效。我真的不知道在这一点上做什么。这是我当前尝试使输入字段识别出有值。

<span class="findme" id="find1"><i class="fa fa-compass" style="font-size:33px;color:green;"></i></span>      
<script>
var find1 = document.getElementById("find1");        
var info = document.getElementById("info");    
var selector = [];    
find1.addEventListener("click", function() {            
selector.push("jform_fulladdress");    
    getLocation();
}, false);            
function putInDom(address){    
  if(selector.length == 1){
    //one field for address
    var field = document.getElementById(selector[0]);
    field.value = address;
  }     
}

function getLocation(){
  if (navigator.geolocation){
    navigator.geolocation.getCurrentPosition(getAddress);
  } else{
    info.innerHTML="Geolocation is not supported by this browser.";
  }
}

function getAddress(position){    
  var lat = position.coords.latitude;
  var lon = position.coords.longitude;    
  var apiurl = 'https://maps.googleapis.com/maps/api/geocode/json?latlng='+lat+','+lon+'&sensor=true';    
  var url = 'ba-simple-proxy.php?url='+encodeURIComponent(apiurl);    
  var xhr = new XMLHttpRequest();    
  xhr.open("GET", url);
  xhr.onload = function() {             
      if(this.status==200 && JSON.parse(xhr.responseText).contents.results.length > 0){
        var result = JSON.parse(xhr.responseText).contents.results[0].formatted_address;
        putInDom(result);
      } else {
        info.innerHTML = "Could not find your location.";
      }    
  }    
  xhr.send();
}        
jQuery('form').change(function() {
var splAd = document.getElementById('jform_fulladdress').value;
splAd = splAd.split(',').slice(0, 2).join(',');
document.getElementById('jform_maps_search').value= splAd;
document.getElementById('jform_fulladdress').value= splAd;

jQuery('jform_fulladdress')
  .trigger({
    type: 'keypress',
    which: character.charCodeAt(49)      
   });    
}).click(function() {
var splAd = document.getElementById('jform_fulladdress').value;
splAd = splAd.split(',').slice(0, 2).join(',');
 document.getElementById('jform_maps_search').value= splAd;
document.getElementById('jform_fulladdress').value= splAd;    
jQuery('jform_fulladdress')
  .trigger({
    type: 'keypress',
    which: character.charCodeAt(49)      
   });    
});    
</script>

0 个答案:

没有答案