0

フォーム内に FormGroup があります。送信ボタンをクリックしたときに FormGroup コントロールを検証する必要がありますが、トリガーされません。TransactionForm はフォームで、allocationForm は FormGroup です。追加ボタンをクリックしたときに FormGroup だけを検証する必要があります。必須フィールドの検証がトリガーされていません。

component.ts

this.transactionForm = this.fb.group({
  allocationForm: this.fb.group({
    fund: new FormControl(['', Validators.required]),
    amount: new FormControl(['', Validators.required]),
  })
});

html

<form novalidate *ngIf="transactionForm" [formGroup]="transactionForm" (ngSubmit)="submitTransaction()">
  <div class="form-group">
    <label for="name">name:</label>
    <input type="text" class="form-control" formControlName="name">
    <br/>
  </div>
  <fieldset formGroupName="allocationForm">
    <div class="form-group row">
      <label for="amount" class="col-lg-4 col-form-label">    {{labels.percent}}</label>
      <div class="col-lg-8">
        <input name="amount" type="number" class="form-control" placeholder="" min="1" step="1" formControlName="amount" required>
        <div class="form-control-feedback" *ngIf="errors.amount">
          errors.amount
        </div>
      </div>
    </div>
    <div class="form-group row">
      <div class="offset-lg-4 col-lg-8">
        <button type="button" class="btn btn-secondary" class="form-control" name="addButton" type="submit">Add</button>
      </div>
    </div>
  </fieldset>
</form>
4

1 に答える 1

0

コードの行で

     <input name="amount" type="number" class="form-control" placeholder="" min="1" step="1" formControlName="amount" required>

この後、間違った条件を使用している div タグで、*ngIf="name.errors.<>" にする必要があります。例: *ngIf="amount.errors.min"。それが役に立てば幸い

于 2017-07-05T15:18:56.213 に答える