【问题标题】:How to do autocomplete validation in Angular2?如何在 Angular2 中进行自动完成验证?
【发布时间】:2016-12-23 21:03:55
【问题描述】:

我一直在尝试在 angular2 中对我的表单中的输入实现自动完成。如果输入无效,我想显示第二个隐藏的 div。你能帮我怎么做吗?

<div class="form-group">
<div *ngSwitchCase="'organisation'">
    <label [attr.for]="parameter.ObjectID" [innerHtml]="parameter.paramLabel">  </label>
    <input [id]='parameter.ObjectID' class="form-control" type="text" [(ngModel)]="parameter.value" (keyup)="filter()" (change)="filter()" (blur)="filter()" [required]="parameter.mandatory" name="mandatory" #mandatory="ngModel">
    <div *ngIf="companyNames.length > 0">
        <ul *ngFor="let item of filteredCompanyList">
            <li>
                <a (click)="select(item)">{{item}}</a>
            </li>
        </ul>
    </div>
    <div [hidden]="!parameter.mandatory || mandatory.valid || mandatory.pristine" class="alert alert-danger">Please do not leave this field blank</div>
    <div [hidden]="temp(mandatory)" class="alert alert-danger">The organisation entered was either not found or does not subscribe to the product</div>
</div>

【问题讨论】:

    标签: validation templates angular autocomplete


    【解决方案1】:

    如果你的函数temp()返回false,就会显示第二个隐藏的div。

    你必须在这个函数中做的所有检查(输入有效?)。

    更新:

    只需使用此[hidden]="filteredCompanyList.length &gt; 0" 来显示/隐藏您的 div。

    【讨论】:

    • 第一个隐藏的 div 正在检查输入是否为空。当用户将不是指定组织之一的值放入 json 文件时,应该显示第二个。如果有办法做到这一点,我正在寻找类似 ngfocus 之类的东西。
    • 所以你应该在你的组件内部使用一个布尔变量!默认值为 true(div 被隐藏!),搜索后,如果没有匹配项,您将将此变量设置为 false。或者只使用filteredCompanyList.length != 0
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-14
    • 1970-01-01
    • 2016-12-01
    • 1970-01-01
    • 2011-06-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多