【问题标题】:Input field validation before submitting form in Angular 4在Angular 4中提交表单之前输入字段验证
【发布时间】:2018-02-10 11:07:18
【问题描述】:

我的目标是确保用户在提交表单之前输入有效数据(无数字)并且输入字段不应为空。救命!!!

ts文件代码如下:

import { Routes, RouterModule, Router, ActivatedRoute } from "@angular/router";
import { Component, NgModule, Input, Output, EventEmitter } from '@angular/core';
import { Environments } from './Environment-class';
import { FormBuilder, FormsModule, ReactiveFormsModule, FormGroup, FormControl, Validators } from '@angular/forms';

@Component({
selector: 'addenvironment-form',
templateUrl: './add-environment-form.component.html'
  })
 export class AddEnvironmentComponent {

@Output() EnvironementCreated = new EventEmitter<Environments>();
createNewEnv(EnvironmentNames: string) {
    this.EnvironementCreated.emit(new Environments(EnvironmentNames));
}

}

还有 HTML 文件

<br />
<div class="card">
<h4 class="card-header">Add a New Environment</h4>
<div class="card-body mx-auto  ">
    <form class="form-inline ">
        <div class="form-group ">

            <h5 class="form-control-static">Enter New Name: </h5>
        </div>

        <div class="form-group mx-lg-3 text-center">
            <label for="inputPassword2" class="sr-only">Password</label>
            <input type="text" class="form-control " id="inputPassword4" placeholder=" Name " #EnvironmentNames>
        </div>

        <button type="submit" class="btn btn-primary" (click)="createNewEnv(EnvironmentNames.value)">Submit</button>
    </form>
</div>

【问题讨论】:

    标签: javascript html forms angular typescript


    【解决方案1】:

    您可以在输入字段中添加required 标签,因此必须填写。 此外,您可以添加minlength。 要使其仅成为字母,您可以使用pattern。您可以使用您允许用户输入的字符。

    如果您打算使用此输入作为密码,我建议您将type 更改为type="password"

    如果表单无效,您也可以disable按钮。

    有了上面提到的所有这些,您的表单应该如下所示:

    <form [formGroup]="myForm" class="form-inline ">
        <div class="form-group ">
            <h5 class="form-control-static">Enter New Name: </h5>
        </div>
        <div class="form-group mx-lg-3 text-center">
            <label for="inputPassword2" class="sr-only">Password</label>
            <input type="password" class="form-control " id="inputPassword4" 
             placeholder=" Name " #EnvironmentNames pattern="^[a-zA-Z]+$" 
             minlength="8" required>
        </div>
    
        <button type="submit" class="btn btn-primary" 
         (click)="createNewEnv(EnvironmentNames.value)"
         [disabled]="!myForm.valid">Submit
        </button>
    </form>
    

    【讨论】:

      猜你喜欢
      • 2013-03-21
      • 2015-10-12
      • 2017-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多