diff --git a/angucomplete.js b/angucomplete.js index 734e9a2..01548fa 100644 --- a/angucomplete.js +++ b/angucomplete.js @@ -144,6 +144,12 @@ angular.module('angucomplete', [] ) $scope.hideResults = function() { $scope.hideTimer = $timeout(function() { + // if no object selected, on blur pick the top one from the list + + if ($scope.selectedObject == null) { + $scope.selectResult($scope.results[0], true); + } + $scope.showDropdown = false; }, $scope.pause); }; @@ -184,13 +190,13 @@ angular.module('angucomplete', [] ) } } - $scope.selectResult = function(result) { + $scope.selectResult = function(result, showDropdown) { if ($scope.matchClass) { result.title = result.title.toString().replace(/(<([^>]+)>)/ig, ''); } $scope.searchStr = $scope.lastSearchTerm = result.title; $scope.selectedObject = result; - $scope.showDropdown = false; + if (typeof showDropdown === 'undefined') { $scope.showDropdown = false; } // optionally keep autocomplete open $scope.results = []; //$scope.$apply(); } @@ -218,6 +224,9 @@ angular.module('angucomplete', [] ) } } else if (event.which == 13) { + if ($scope.currentIndex == -1 && $scope.results.length > 0) { + $scope.currentIndex = 0; + } if ($scope.results && $scope.currentIndex >= 0 && $scope.currentIndex < $scope.results.length) { $scope.selectResult($scope.results[$scope.currentIndex]); $scope.$apply();