【问题标题】:Total sum value inputs in reactive form in angular角度反应形式的总和值输入
【发布时间】:2021-03-04 09:03:51
【问题描述】:

如何以反应形式(例如角度 11)获得两个或多个字段输入的总和? 所以我想要一个总和两个或多个输入值的总和,并通过使用角度 +6 的反应形式在另一个输入中得到结果,我该怎么做?

【问题讨论】:

    标签: angular angular6 angular7 angular11


    【解决方案1】:

    这是你的答案,请参考下面的代码,

    将代码放入your.component.html

    <form [formGroup]="myForm" (ngSubmit)="onSubmit(myForm)" class="needs-validation" style="padding: 80px 15px 0px 15px;">
        <div class="form-group">
            <label for="number1">Number 1</label>
            <input type="number" class="form-control" formControlName="number1" required placeholder="Enter number 1" />
        </div>
        <div class="form-group">
            <label for="number2">Number 2</label>
            <input type="number" class="form-control" formControlName="number2" required placeholder="Enter number 2" />
        </div>
        <div class="form-group">
            <label for="number3">Number 3</label>
            <input type="number" class="form-control" formControlName="number3" placeholder="Enter number 3">
          </div>
    
        <button type="submit" class="btn btn-primary">Submit</button>
    </form>
    
    <div class="form-group">
      <label for="sumOfNumber">Output</label>
      <input type="number" class="form-control" [(ngModel)]="sumOfNumber" placeholder="Sum of above number is">
    </div>
    

    将此代码放入 your.component.ts

    import { Component, OnInit } from '@angular/core';
    import { FormGroup, FormControl, FormBuilder, Validators } from '@angular/forms';
    
    @Component({
      selector: 'app-reactive-form',
      templateUrl: './reactive-form.component.html',
      styleUrls: ['./reactive-form.component.scss'],
    })
    export class ReactiveFormComponent implements OnInit {
      myForm: FormGroup;
      formSubmit: boolean = false;
      sumOfNumber: number = 0;
      constructor(private fb: FormBuilder) {}
    
      ngOnInit() {
        this.myForm = this.fb.group({
          number1: [null],
          number2: [null],
          number3: [null]
        });
        this.myForm.valueChanges.subscribe((value) => {
          let sum = 0;
          for (var key in value) {
            if (value.hasOwnProperty(key)) {
              sum =  value[key] + sum;
            }
          }
          console.log(sum)
          this.sumOfNumber = sum;
        });
      }
    }
    

    注意:在你的 module.ts 文件中导入 FormsModule 和 ReactiveFormsModule

    【讨论】:

    • 但我只想总结三个输入而不是其他输入的另一个值
    • 您可以将条件放入 for 循环中,仅将循环旋转 3 次,这样您就可以获得仅有的三个输入总和
    猜你喜欢
    • 2019-06-04
    • 1970-01-01
    • 2018-08-05
    • 2019-03-02
    • 2018-12-19
    • 2021-04-27
    • 1970-01-01
    • 2020-11-23
    • 2022-01-03
    相关资源
    最近更新 更多