1

我有一个 ng-select 选择框和一个应用按钮,用于确认选择。有一个Person对象,具有idname,所有名称都显示在下拉列表中供用户选择。

这个想法是用户选择一个名称(虽然他可以键入以过滤结果)然后确认,将选择的选项发送到服务器并将其保存到数据库中。

问题在于,用户可以输入无效输入(不存在的名称)并确认,而不是从过滤结果中选择选项。我不想让这种情况发生。

如果输入无效,我想禁用“应用”按钮(这意味着它尚未从结果中选择并且它与任何结果都不匹配,以防用户仅正确输入名称并且没有单击它在下拉菜单)。我怎样才能做到这一点?

这是我的代码:

<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;博士

所以基本上我需要将当前输入作为用户类型,将其与所有现有的人名(我存储在一个数组中)进行比较,如果输入不匹配或为空,则禁用确认按钮,否则启用它。

有任何想法吗?谢谢你的帮助。

4

0 回答 0