如何将Google商家信息自动填充文字格式化为文本框

时间:2014-02-15 01:16:16

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

我正在使用Google在文本框上放置AutoComplete,它实际上正在工作,选择位置并将它们填充到文本框中。

问题是我只想填写选择名称 - 而不是自动完成列表产生的列表中的全名+地址格式。我似乎无法找到一种方法来覆盖文本框中的内容。

    var $name = $("#txtName");
    $name.focus();

    var autocomplete = new google.maps.places.Autocomplete($name[0]);
    google.maps.event.addListener(autocomplete, 'place_changed', function () {
        var place = autocomplete.getPlace();

        // explicitly update model
        // but doesn't display in UI
        $scope.locationData.Name = place.name;


        // explicitly update the input box - doesn't update UI
        $name.val(place.name);

        return false;  // doesn't work - updates UI
    });

基本上我想做的是自己接管输入框文本分配,自己完成任务并强制自动完成不设置文本框值。

这可能吗?

1 个答案:

答案 0 :(得分:1)

设置一个短暂的延迟值。

$('#NameBox').on('blur change', function () { $(this).val(place.name).off('blur change'); });
setTimeout(function () { $('#NameBox').val(place.name); }, 150);

使用.off()允许用户根据需要编辑名称。如果您希望仅允许地方API名称删除.off()