我有一个 ng-select 选择框和一个应用按钮,用于确认选择。有一个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 对象并发送到服务器。
tl;博士:
所以基本上我需要将当前输入作为用户类型,将其与所有现有的人名(我存储在一个数组中)进行比较,如果输入不匹配或为空,则禁用确认按钮,否则启用它。
有任何想法吗?谢谢你的帮助。