【发布时间】:2016-10-13 06:34:47
【问题描述】:
我刚刚使用 AngularJS 和 Elasticsearch 构建了一个小型电影搜索应用程序。我使用 AngularJS UI Bootstrap Typeahead 进行自动完成,并在测试中注意到一些关于用户交互的内容。
假设我想搜索名为 Tom 的演员。我在搜索输入中输入“tom”,然后出现 5 条建议 - 很好。但是,如果我所做的只是在键盘上按 Enter,它不会让我只搜索“tom”。它会自动选择下拉列表中的第一个建议。如果我点击提交按钮,它只会搜索“tom”。我的表单标记如下 - 我哪里出错了?
我希望我的用户能够搜索他们输入的查询(当他们按 Enter 时),而不仅限于提供的建议...
<div class="col-sm-3 col-md-6 pull-left" style="border: 1px solid red;"><form name="q" ng-submit="vm.search()" class="navbar-form" role="search">
<div class="input-group input-group-md">
<input type="text" ng-model="vm.searchTerms" class="form-control input-md" placeholder="{{ vm.searchTerms }}" name="q" typeahead-show-hint="true" uib-typeahead="query for query in vm.getSuggestions($viewValue)" typeahead-on-select="vm.search($item)">
<span class="input-group-btn">
<button class="btn btn-primary btn-md" type="submit" id="results-search-btn" ng-submit="vm.search()"><i class="fa fa-search fa-lg"></i>
</button>
</span>
</div>
【问题讨论】:
标签: angularjs angular-ui-typeahead