【问题标题】:How to read form values in controller?如何在控制器中读取表单值?
【发布时间】:2017-12-15 07:26:46
【问题描述】:

我是 Angular 2 的初学者,我正在尝试在组件中获取文本框的值,但我真的不知道如何获取它。

HTML:

<form [formGroup]="regForm" >
                <label for="txtFName">First Name</label>
                <input type="text" id="txtFName"/>
</form>

component.ts:

import { Component } from "@angular/core"
import { FormControl, FormGroup, FormBuilder, Validator, Validators,ReactiveFormsModule } from "@angular/forms";
import { customer } from '../model/customerModel'
import { Router } from "@angular/router";

export class regComponent
{
    private Customer:customer;
    private regForm:FormGroup;
    private firstName:FormControl;

    constructor (private formBuilder:FormBuilder,private router:Router)
    {

        this.firstName=new FormControl('',[Validators.required])

        this.regForm=formBuilder.group({
        firstName:this.firstName
    })

console.log(this.regForm.value);
}

这里我在控制台中得到空值。请在这方面提供帮助

【问题讨论】:

标签: angular typescript


【解决方案1】:

添加formControlName 输入

<input type="text" id="txtFName" formControlName="firstName" />

现在按名称访问值

this.regForm.get('firstName').value

【讨论】:

    【解决方案2】:

    对于以下控件,命名电子邮件:

    ngOnInit() {
        this.contactForm = this.formBuilder.group({
          email: [null, Validators.compose([Validators.required])]
        });
      }
    

    通过name 访问控制权:

    this.formGroup.controls['email'].value
    

    【讨论】:

      【解决方案3】:

      import { Component, OnInit } from '@angular/core';
      import { FormBuilder, Validators } from '@angular/forms';
      
      
      @Component({
        selector: 'demo-app',
        templateUrl: 'app/app.component.html'
      })
      
      export class regComponent implements OnInit {
      
      private regForm:any;
          constructor(private formBuilder: FormBuilder) { 
          }
          ngOnInit(){
              this.regForm=formBuilder.group({
                firstName:['', Validators.required]
               })
          }
      
           saveUser() {
              if (this.regForm.dirty && this.regForm.valid) {
                alert(`FirstName: ${this.regForm.value.firstName}`);
              }
            }
      }
      <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
      
      <form [formGroup]="regForm" (submit)="saveUser()" >
                <label for="txtFName">First Name</label>
                <input type="text" id="txtFName"  formControlName="firstName" #firstName="ngControl"/>
                <button type="submit" [disabled]="!userForm.valid">Submit</button>
              </form>

      【讨论】:

      • 我已删除我的答案,因为该问题已得到答复。注意:使用 ngOnInit 而不是构造函数来创建 regForm
      • 这是刷新页面。
      猜你喜欢
      • 1970-01-01
      • 2012-02-17
      • 2017-11-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多