[在多种情况下IE 11中的ngForm崩溃

问题描述 投票:0回答:1

在多种情况下IE 11中的ngForm崩溃。

  1. 页面加载后,如果用户直接单击“提交”按钮而不触摸任何文本框,则浏览器将刷新。
  2. [如果用户通过单击表单上的其他位置从“用户名”文本框中删除焦点,然后单击“提交”按钮,则显示验证消息,验证后,如果用户在“密码”文本框中输入任何值并尝试将其删除,则浏览器将刷新,以显示味精。

其他情况在其他浏览器上令人担忧,但仅在IE上崩溃。

这是由于'is-invalid'类而发生的。我尝试了多次代码更改,但不适用于IE

<form class="login" name="form" #f="ngForm" novalidate>
        <input type="text" placeholder="Username" autofocus #userName class="form-control" name="username" [(ngModel)]="user.username" #username="ngModel" 
        [ngClass]="{ 'is-invalid': (f.submitted && username.invalid ) ? true : false }"
         required autocomplete="off"
        />
        <i class="fa fa-user"></i>
        <div *ngIf="f.submitted && username.invalid" class="invalid-feedback">
            <div *ngIf="username.errors.required">Username is required</div>
        </div>
        <input type="password" placeholder="Password" class="form-control" name="password" [(ngModel)]="user.password" #password="ngModel" 
        [ngClass]="{ 'is-invalid': (f.submitted && password.invalid) ? true : false}"
         required />
        <i class="fa fa-key"></i>
        <div *ngIf="f.submitted && password.invalid" class="invalid-feedback">
            <div *ngIf="password.errors.required">Password is required</div>
        </div>
        <div *ngIf="loginFailed" class="invalid-feedback">
            <div *ngIf="loginFailed">{{loginFailedMsg}}</div>
        </div>
        <button type="submit" (click)="login()"> <span class="state">Log in</span></button>
    </form>```
angular
1个回答
0
投票

更改<button type="submit" (click)="login()"><button type="button" (click)="login()">

© www.soinside.com 2019 - 2024. All rights reserved.