Jquery 谷歌放置自动完成&;模糊问题

Jquery 谷歌放置自动完成&;模糊问题,jquery,google-places-api,Jquery,Google Places Api,我有一个表单,它实现了GooglePlaces自动完成和填充其他文本字段 <script type="text/javascript"> $(document).ready(function(){ $('.noEnterSubmit').keypress(function(e){ if ( e.which == 13 ) return false; }); var updateAddress =

我有一个表单,它实现了GooglePlaces自动完成和填充其他文本字段

    <script type="text/javascript">
    $(document).ready(function(){
        $('.noEnterSubmit').keypress(function(e){
            if ( e.which == 13 ) return false;
        });

        var updateAddress = {

        autocomplete: new google.maps.places.Autocomplete($("#Subscription_address")[0], {types: ['geocode']}),

        event: function(){
            var self = this;    
            google.maps.event.addListener(self.autocomplete, 'place_changed', function() {
                var place = self.autocomplete.getPlace(),
                    address = place.address_components,
                    streetAddress = '',
                    suburb = '',
                    state = '',
                    zip = '',
                    country = '';

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

                    if (addressType == 'subpremise') {
                        streetAddress += address[i].long_name + '/';
                    }
                    if (addressType == 'street_number') {
                        streetAddress += address[i].long_name + ' ';
                    }
                    if (address[i].types[0] == 'route') {
                        streetAddress += address[i].long_name;
                    }
                    if (addressType == 'locality') {
                        suburb = address[i].long_name;
                    }
                    if (addressType == 'administrative_area_level_1') {
                        state = address[i].long_name;
                    }
                    if (addressType == 'postal_code') {
                        zip = address[i].long_name;
                    }
                    if (addressType == 'country') {
                        country = address[i].long_name;
                    }
                }

                // update the textboxes
                setTimeout(function(){$('#Subscription_address').val(streetAddress).blur(function(e){
                    this.value = this.streetAddress;
                });},50);
                $('#Subscription_city').val(suburb);
                $('#Subscription_state').val(state);
                $('#Subscription_zip').val(zip);
                $('#Subscription_country').val(country);
            });

        }
    };

    updateAddress.event();

    });
    </script>
    </head> 

<input class="noEnterSubmit input-large" name="Subscription[address]" id="Subscription_address" type="text">

$(文档).ready(函数(){
$('.noEnterSubmit')。按键(功能(e){
如果(e.which==13)返回false;
});
var updateAddress={
自动完成:新的google.maps.places.autocomplete($(“#订阅地址”)[0],{types:['geocode']}),
事件:函数(){
var self=这个;
google.maps.event.addListener(self.autocomplete,'place\u changed',function(){
var place=self.autocomplete.getPlace(),
地址=place.address\u组件,
streetAddress=“”,
郊区=“”,
州=“”,
zip=“”,
国家='';
对于(变量i=0;i
我正在阻止表单按enter键提交。只有当用户输入keypress,然后将焦点从文本字段中移开时,#订阅#地址才会重置,并且Google Places API才会显示#订阅#地址的“未定义”值

当前,tab键和鼠标选择作为模糊事件按预期填充其他字段,并仅保留#Subscription_address字段中的streetAddress

使用JQuery如何允许用户使用enter键选择自动完成结果,然后将焦点从文本字段中移开并保留所选值

       // update the textboxes
        setTimeout(function(){$('#Subscription_address').val(streetAddress).blur(function(e){
            this.value = streetAddress;
        });},50);
我需要在模糊函数后删除此.streetAddress。在下拉列表的DOM中,这具有不同的上下文