У меня есть поле выбора ng-select и кнопка Apply, которая подтверждает выбор. Существует объект Person , который имеет id и name , и все имена отображаются в раскрывающемся списке, чтобы пользователь мог выбрать .
Идея состоит в том, что пользователь выбирает имя (в то время как он может печатать для фильтрации результатов), а затем подтверждает, отправляя выбранный параметр на сервер и сохраняя его в базе данных.
Проблема в том, что вместо выбора варианта из отфильтрованных результатов пользователь также может ввести недопустимый ввод (несуществующее имя) и подтвердить. Я не хочу, чтобы это произошло.
Я хотел бы отключить кнопку «Применить», если ввод недействителен (это означает, что он не был выбран из результатов И он не соответствует ни одному из результатов, в случае, если пользователь только правильно набрал имя и не нажал кнопку) на это в выпадающем списке). Как я могу это сделать?
Вот мой код:
<ng-select [items]="allPersons" [(ngModel)]="currentPersonId"
bindLabel="name" bindValue="id"
(change)="storeNewPersonName($event)">
</ng-select>
<button (click)="updatePerson()">
<strong>Apply</strong>
</button>
функция storeNewPersonName ($ event) вызывается каждый раз, когда пользователь выбирает имя из выпадающего списка . Он хранит имя в переменной. Затем в updatePerson () эта переменная преобразуется в объект Person и отправляется на сервер.
ТЛ; др
Так что в основном мне нужно взять текущий ввод как пользовательский тип, сравнить его со всеми существующими именами лиц (которые я храню в массиве) и отключить кнопку подтверждения, если ввод не совпадает или пуст, включив это иначе.
Есть идеи? Спасибо за помощь.