javascript - HTML 下拉列表能够在 Angular 2 中添加自定义值

标签 javascript html select drop-down-menu angular

我有以下用例

我们向用户呈现一个硬编码的下拉列表

例如:有 4 个选项的下拉列表,分别是苹果、橙子、葡萄、菠萝和“编写您自己的”

如果用户不喜欢这 4 个选择,他/她可以从下拉列表中选择“编写您自己的”选项。现在,用户会看到一个输入框,他/她可以在其中写下自己的水果,例如“香蕉”。

如何使用 Angular 2 新表单模块实现此功能?

最佳答案

我认为这应该适合你

HTML:

    <select *ngIf="!showAdditional" [(ngModel)]="mySelect" name="mySelect" (ngModelChange)="custom()">
        <option *ngFor="let o of options" [value]="o">{{o}}</option>
    </select>
    <input *ngIf="showAdditional" type="text" [(ngModel)]="additionalOption" name="additionalOptions" />

T:

export class SomeComponent {
    mySelect: string; 
    options: string[] = ['apple', 'orange', 'grape', 'write your own'];
    additionalOption: string;
    showAdditional: boolean = false;

    custom() {
        if (this.mySelect === 'write your own') this.showAdditional = true;
    }
}

因此,如果用户想要添加自定义选项,您可以隐藏选择并显示输入。您可以为 Angular 2 表单添加额外的验证,这只是简单的设置。

关于javascript - HTML 下拉列表能够在 Angular 2 中添加自定义值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38518942/

相关文章:

sql - 没有子查询的表的多次传递

php - foreach中的mysql查询

javascript - Jhipster Angular 4 额外的 CSS 和 JS

javascript - 使用 Javascript 更改 a 元素的类

html - 如何将蓝色框移动到红色和蓝色框上方?

javascript - 表 colgroup 中的 Col 被隐藏

javascript - 如果用户两次插入错误的凭据,Jquery 登录功能将不起作用

asp.net - 您将如何在后端不使用 ASP.NET 的项目中使用 ASP.NET AJAX Control Toolkit

html - 为什么 Google 主页使用已弃用的 HTML(即无效的 HTML5)?

javascript - 动态地将多选元素的大小属性设置为选项数