2016-10-05 3 views
0

私の場合、Googleのオートコンプリートアドレス検索が動作します。しかし、私がクリックするか、またはEnterを押すと、フォームも提出されます。私はイベントpreventdefaultを試しますが、動作していません!GoogleマップのオートコンプリートアドレスをAngularJSで選択したときにフォーム提出を避ける方法

これは私の指示コードです。

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); 

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

答えて

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

私の問題は解決しました。 問題は私がevent.preventDefault()を書いていることでした。 どのキーが押されているかを知る必要がありますか? Enterキーが押された場合、event.PreventDefaultが押されます。

関連する問題