Autocomplete 谷歌自动完成地址-如何更改输入id

Autocomplete 谷歌自动完成地址-如何更改输入id,autocomplete,google-places-api,Autocomplete,Google Places Api,(很抱歉我的英语有限) 我使用GooglePlacesAutoComplete()作为地址表单,需要修改输入id 目前,结果以以下形式显示: <input class="field" id="street_number" disabled="true"></input> <input class="field" id="route" disabled="true"> <input class="field" id="locality" disabled

(很抱歉我的英语有限)

我使用GooglePlacesAutoComplete()作为地址表单,需要修改输入id

目前,结果以以下形式显示:

<input class="field" id="street_number"  disabled="true"></input>
<input class="field" id="route" disabled="true">
<input class="field" id="locality" disabled="true">
<input class="field" id="administrative_area_level_1" disabled="true"></input>
<input class="field" id="postal_code" disabled="true">
<input class="field" id="country" disabled="true"></input>

但我需要这样的东西:

<input class="field" id="streetnumb"  disabled="true"></input>
<input class="field" id="rue" disabled="true">
<input class="field" id="ville" disabled="true">
<input class="field" id="departement" disabled="true"></input>
<input class="field" id="cp" disabled="true">
<input class="field" id="pays" disabled="true"></input>


你能帮我吗?

我也有同样的问题。我刚刚更改了fillInAddress函数,使用输入名称(getElementsByName)而不是ID

JS

函数fillInAddress(){
var place=autocomplete.getPlace();
for(componentForm中的var组件){
document.getElementsByName(组件)[0]。值=“”;
document.getElementsByName(组件)[0].disabled=false;
}
对于(变量i=0;i
HTML


这对我很有效。也许这不是最好的解决方案,但正在发挥作用。:)您可以将id更改为任何您想要的,并像这样处理它

JS

函数fillInAddress(){
var place=autocomplete.getPlace();
document.getElementById('user_city')。值='';
document.getElementById('user\u country')。值='';
document.getElementById('country')。值='';
document.getElementById('user_-zip')。值='';
document.getElementById('user\u city')。disabled=false;
document.getElementById('user\u country')。disabled=false;
document.getElementById('country')。disabled=false;
document.getElementById('user_-zip')。disabled=false;
对于(变量i=0;i
HTML


...

创建一个附加对象以将地址类型解析为您的ID:

var componentResolver = {
  street_number: 'streetnumb',
  route: 'rue',
  locality: 'ville',
  country: 'country',
  ...
};
在fillInAddress()函数中,将最后一行代码从

document.getElementById(addressType).value = val;


奇怪的是,他们不允许你设置自己的身份证
  function fillInAddress() {
    var place = autocomplete.getPlace();

    document.getElementById('user_city').value = '';
    document.getElementById('user_country').value = '';
    document.getElementById('country').value = '';
    document.getElementById('user_zip').value = '';
    document.getElementById('user_city').disabled = false;
    document.getElementById('user_country').disabled = false;
    document.getElementById('country').disabled = false;
    document.getElementById('user_zip').disabled = false;

    for (var i = 0; i < place.address_components.length; i++) {
      var addressType = place.address_components[i].types[0];

      if (componentForm[addressType]) {
        var val = place.address_components[i][componentForm[addressType]];
        var field = addressType;

        if(field=="country") {
          document.getElementById('country').value = val;
          document.getElementById("user_country").value = place.address_components[i].short_name;
        }

        if(field=="locality") {
          document.getElementById('user_city').value = val;
        }

        if(field=="postal_code") {
          document.getElementById('user_zip').value = val;
        }

        if(field=="street_number") {
          var streetnum = document.getElementById('user_street').value = val;
        }

        // Join street number with street to one input
        if(field=="route") {
          if(streetnum) {
            completeadress = streetnum + ' ' + val;
          }
          else {
            completeadress = val;
          }
          document.getElementById('user_street').value =  completeadress;
        }
      }
    }
  }
<input class="field" name="user[city]" id="user_city" disabled="true"></input>
...
var componentResolver = {
  street_number: 'streetnumb',
  route: 'rue',
  locality: 'ville',
  country: 'country',
  ...
};
document.getElementById(addressType).value = val;
document.getElementById(componentResolver[addressType]).value = val;