2016-10-12 13 views
0

AngularJSとElasticsearchを使用した映画用の小さな検索アプリを作成しました。私は、オートコンプリートのためにAngularJS UI Bootstrap Typeaheadを使用し、テストではユーザーのやり取りについて何か気づいた。Enterキーで検索しません

私はトムという名前の俳優を検索したいと言います。検索入力に「tom」と入力すると、5つの候補が表示されます。しかし、キーボードでEnterキーを押すだけであれば、「tom」を検索することはできません。ドロップダウンで最初の候補を自動的に選択します。私が「送信」ボタンをクリックするだけで、ITは「トム」を検索します。私のフォームマークアップは以下の通りです - どこが間違っていますか?

私は(彼らは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> 

答えて

0

それは、最初の結果が自動的に選択されます。 Enterを押すと、その最初の結果にすでに焦点が当てられています。あなたは、自動的にそのように最初の結果を選択しないために、角のUI先行入力を設定することができます。迅速な答えを

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

+0

感謝:

typeahead-focus-first="false" 

が彼らの詳細についてはマニュアルを参照してください。それは、しかし、それはまた、最初の提案からハイライトを取り去ります - 私は保つつもりです。ハイライトを維持する方法はありますか? – user3125823

+1

ハイライトがEnterキー機能を指示していますが、私が考えることができるのは、Enterキー機能をオーバーライドして、あなたが望むことをやり直すことだけです。これと似たようなものですが、単に誤ったトリガーを返す代わりに、あなたも関数を検索します:http://stackoverflow.com/questions/11235622/jquery-disable-form-submit-on-enter –

+0

@ user3125823申し訳ありません、タグを忘れました。 –

関連する問題