使用动态文本框的Google商家信息自动填充功能

时间:2013-10-13 04:52:13

标签: javascript jquery google-maps-api-3 autocomplete google-places-api

我正在关注this教程以实施Google商家信息自动填充功能。但是,这仅适用于现有的静态定义文本字段。在我的测试应用中,我动态添加了文本字段,用户点击按钮可添加更多文本字段。

<input maxlength="40" name="Point[location][]" id="Point_location" type="text" placeholder="Enter a location" autocomplete="off">
<input maxlength="40" name="Point[location][]" id="Point_location2" type="text" placeholder="Enter a location" autocomplete="off">

这是我的javascript

<script>
    var location = $("input[id^=Point_location]")[0];
    var autocompleteLocation = new google.maps.places.Autocomplete(location, options);
    google.maps.event.addListener(autocompleteLocation, 'place_changed', function () {
        var placeLocation = autocompleteLocation.getPlace();
    });
</script>

我似乎无法使用id为Point_location或刚刚添加的输入来使用任何现有输入来自动完成。

感谢您的任何帮助。

1 个答案:

答案 0 :(得分:2)

当你发布了创建克隆的代码时,会更容易回答。

我猜你只是克隆输入,这将无济于事。您必须为每个输入创建一个新的自动完成实例:

//create the clone
  var clone=$(location).clone(false).val('').appendTo('body');
//apply Autocomplete
  var ac = new google.maps.places.Autocomplete(clone[0]);
//apply listener
  google.maps.event.addListener(ac, 'place_changed', function () {
    var placeLocation = this.getPlace();
  });