【问题标题】:No search on Enter key不搜索 Enter 键
【发布时间】: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


    【解决方案1】:

    它会自动选择第一个结果。因此,当您按 Enter 键时,它已经将注意力集中在第一个结果上。您可以将 angular ui typeahead 配置为不自动选择第一个结果,如下所示:

    typeahead-focus-first="false"
    

    查看他们的文档了解更多信息:

    https://angular-ui.github.io/bootstrap/#/typeahead

    【讨论】:

    • 感谢您的快速回答。它有效但是,它也消除了第一个建议的亮点 - 我想保留它。有没有办法保持高光?
    • 重点是指导回车键功能,我唯一能想到的就是覆盖回车键功能来做你想做的事。像这样的东西,但不仅仅是返回错误触发器,您还可以搜索功能:stackoverflow.com/questions/11235622/…
    • @user3125823 抱歉,忘记标记你了。
    猜你喜欢
    • 2011-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-16
    • 2011-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多