如何在AngularJS中选择Google地图自动填充地址时避免表单提交

时间:2016-10-05 10:40:57

标签: angularjs google-maps

在我的情况下谷歌自动填充地址搜索工作。但是当我点击或按回车键时,表格也会提交。我尝试了preventdefault这个活动,但它没有用!

这是我的指令代码。

myApp.directive('googleplace', function() {
    return {
        require: 'ngModel',
        link: function(scope, element, attrs, model,event) {
            var options = {
                types: [],

            };
            scope.gPlace = new google.maps.places.Autocomplete(element[0], options);

            google.maps.event.addListener(scope.gPlace, 'place_changed', function() {
              var location = scope.gPlace.getPlace().geometry.location;
                //
                scope.$apply(function() {

                  scope.lat = location.lat();
                  scope.lng  = location.lng();

                  event.preventDefault();
                    //alert(scope.lat);

                });
            });
        }
    };
});

1 个答案:

答案 0 :(得分:1)

var input = document.getElementById('IdWhereYouAreSearchingForLocation');
google.maps.event.addDomListener(input, 'keydown', function(e) { 
    if (e.keyCode == 13) 
    { 
        e.preventDefault(); 
    }
});

我的问题已解决。 问题是我只是在编写event.preventDefault()。 您必须尝试知道按下了哪个键?如果按下Enter键则调用event.PreventDefault。