2017-06-28 24 views
1

入力フィールドがあり、入力時に入力したアイテムを検索して、バックグラウンドで検索しながらその入力フィールドに文字を入力できないようにするには、検索機能が完了したら、ユーザーが入力を開始できるように、検索入力フィールドにフォーカスを移動する必要があります。検索中に入力フィールドを無効にし、完了時にフォーカスを設定

HTML:

<input [disabled]="(displayLoader > 0)" [ngModel]="''" (ngModelChange)="updateData($event)" class="form-control-search" placeholder="Search"/> 

コンポーネント:ここ

updateData(event) { 
    this.displayLoader = 1 
    //search function 
    //on completion 
    this.displayLoader = 0; 
} 

Iが無効に使用されるが、完了時に、それは、入力フィールドを集中されていないと、ユーザーが手動でクリックするまでも入力することができません入力フィールド

+0

あなたは検索データは、サービスコールによってフェッチされている間、入力フィールドを無効にしようとしていますか? – Abrar

+0

彼の説明によると、彼はバックエンドで検索が実行されている間にテキストボックスを無効にしたいと考えています。 –

+0

@Abrarなぜタッグ追加が必要なのかについては、タイプスクリプトに慣れていない人として私には不明です。あなたはTypeScript専用の機能で、JavaScriptでは利用できない機能はここで使用されていますか?これは、この例を、よりバニラのAngular on JS設定と互換性がないものにしていますか? – Sebivor

答えて

2

このコードを試してください。これは助けになります。 HTML

<input [disabled]="(displayLoader > 0)" [ngModel]="''" #focusable (ngModelChange)="updateData($event,focusable)" class="form-control-search" placeholder="Search"/> 

コンポーネント

updateData(event,el) { 
     this.displayLoader = 1 
     //search function 
     //on completion 
     this.displayLoader = 0; 
    el.focus(); 
    } 
+0

これは私がすでに試したものですが、その焦点は正しく働いていません。つまり、入力フィールドを手動でクリックして入力を開始する必要があります。同じ要素に焦点を当てることはできません –

+0

ここをクリックして参考にしてください、https://blog.thecodecampus.de/angular-2-set-focus-element/ –

+0

おかげで、Focusはangular2-focusで正しく動作しています。ここで私は焦点が合っていて一緒に働いていない障害者が働いています –

関連する問題