Bootstrap 如何在Angular 表单中对空字段进行客户端验证

k2arahey  于 2022-12-07  发布在  Bootstrap
关注(0)|答案(1)|浏览(193)

我已经创建了一个带有form标签的登录页面,我希望在用户点击Submit按钮时进行客户端验证,但是什么都没有发生,Checkform方法没有被触发。这是我的代码

<div>
    <form class="login">
      <p class="title">Log in</p>
      <input type="text" class="form-control id="username" id="txtUsername" required>
      <div class="invalid-feedback">
        Please provide Username
      </div>
      <input  class="form-control type="text" id="email" id="txtPass" required>
      <div class="invalid-feedback">
        Please provide Password
      </div>
      <br>            
      <button type="button" onclick="Checkform()">
        <span class="state">Log in</span>
      </button>
    </form>
 </div>

我已经添加了bootstrap类用于验证,还在.ts文件中添加了一个方法,当我单击提交按钮时,该方法将触发
第一次
我如何对空字段进行客户端验证,并在用户单击“提交”按钮时激发一个方法?

weylhg0b

weylhg0b1#

我已经使用Reactive forms修复了客户端验证。😀
首先在app.modules.ts文件的imports部分添加ReactiveFormsModule

import { FormBuilder, FormGroup, Validators } from '@angular/forms';

export class HomeComponent implements OnInit {

  loginForm :FormGroup;
  submitted=false;
  constructor(private formBuilder: FormBuilder) { 
    this.initializeForm();
  }

  initializeForm()
  {
    this.loginForm = this.formBuilder.group({
      userName: ['', Validators.required],
      email: ['', [Validators.required, Validators.email]],
    }); 
  }

  UserLogin()
  {
    this.submitted = true;
    if(this.loginForm.invalid)
    {
      return
    }
  }
}

这就是如何设计component.html文件

<form [formGroup]="loginForm" (ngSubmit)="UserLogin()">

    <div class="form-group">
      <input type="text" class="form-control" [ngClass]="{'is-invalid' :submitted && loginForm.controls['userName'].errors}"
       formControlName="userName" placeholder="Username">
    </div>
    
    <div class="form-group">
      <input type="text" class="form-control mt-2" [ngClass]="{'is-invalid' :submitted && loginForm.controls['email'].errors}" 
      formControlName="email" placeholder="Email">
    </div> 
    
    <button class="btn btn-primary" type="submit">
       <span class="state">Log in</span>
    </button>
    
</form>

initializeForm()中,我们有userNameemail,这些名称应该是.html文件中的formControlName。您可以根据需要添加任意多的字段。这是登录页面的外观

如果您需要详细信息visit this.

相关问题