как выполнить проверку формы для обязательных полей в angular

#angularjs

#angularjs

Вопрос:

Я хочу проверить свою форму с помощью проверки формы Angular.Я прочитал много статей, в которых содержится информация о том, как проверять форму перед отправкой. Но мой вопрос в том, как я могу проверить форму для требуемого поля, например, для моей формы входа в систему у меня есть два поля, одно имя пользователя и пароль. Не вводя никаких значений полей, пользователь нажимает на кнопку входа. Итак, в этом сценарии, как выполнить проверку в angular.

Заранее спасибо,

Комментарии:

1. Почему бы просто не использовать required атрибут HTML

Ответ №1:

Вот код для проверки формы (используется сборка электронной почты в валидаторе в соответствии с моим требованием)

Вход.Component.html

 <form id="loginForm" #validform="ngForm" (ngSubmit)="onSubmit(validform)">
    <div class="example-container">

        <mat-form-field>
            <input matInput placeholder="UserName" [formControl]="userName" autofocus>
            <mat-error *ngIf="userName.hasError('email') amp;amp; !userName.hasError('required')">
                Please enter a valid email address
            </mat-error>
            <mat-error *ngIf="userName.hasError('required')">
                Email is
                <strong>required</strong>
            </mat-error>
            <br>
        </mat-form-field>
        <mat-form-field>
            <input matInput type="password" placeholder="Password" [formControl]="password">
            <mat-error *ngIf="password.hasError('required')">
                Password is
                <strong>required</strong>
            </mat-error>
        </mat-form-field>


    </div>
    <button type="submit" class="btn btn-success btn-block" [disabled]="userName.hasError('email') || password.hasError('required')"
        id="login_btn">Login</button>
</form>
 

Вход.Component.ts

 import { Component,OnInit, OnChanges, Injectable } from '@angular/core';
import { FormGroup, FormControl } from '@angular/forms';
import { Validators,NgForm, NgModel } '@angular/forms';

@Component({
  selector: 'app-login',
  templateUrl: './login.component.html',
  styleUrls: ['./login.component.css'
  ]
})


export class LoginComponent implements OnInit {

/* validate form */
validform;

userName : any;
password : any;

constructor(){ }

ngOnInit(){
         this.buildForm();
}
buildForm(){
   this.userName = new FormControl("", Validators.compose([
        Validators.required,
        Validators.email,
      ])),
      this.password =   new FormControl('', [
        Validators.required,
      ])}
onSubmit = function(validform: NgForm){
       //Call the login api with validForm Data
}


 }
 

Надеюсь, это поможет.

Ответ №2:

Просто поставьте ng-disabled на кнопку отправки. Что-то вроде этого должно работать.Вы должны дать форме имя для проверки angular, чтобы работать с ней.

 <form name="myform">
  <input type="email" name="email" ng-model="email" placeholder="Email Address" required /></input>
  <input type="password" name="password" required></input>
  <button type="submit" ng-disabled="myform.$invalid"> Submit </button>
</form>
 

Комментарии:

1. @dip кажется правильным ответом, может быть, присудить правильный ответ?