Reputation: 23277
I've created this form inside ngOnInit()
method:
this.cardForm = this.fb.group({
card_number: ['', Validators.required],
holderName: ['', Validators.required],
expiry: ['', Validators.required],
cvc: ['', Validators.required],
address_line1: ['', Validators.required],
address_line2: ['', Validators.required],
address_city: ['', Validators.required],
address_state: ['', Validators.required],
address_zip: ['', Validators.required],
address_country: ['', Validators.required]
});
On my template:
<form [formGroup]="cardForm" novalidate="novalidate">
<div class="form-group">
<label for="cardnumber">Card number</label>
<input
type="text"
name="cardnumber"
class="input-transparent form-control"
formControlName="card_number"
data-mask="9999-9999-9999-9999"
placeholder="____-____-____-____"
required="required">
</div>
Nevertheless, I'm getting this error:
ERROR Error: Cannot find control with name: 'card_number'
Upvotes: 0
Views: 2247
Reputation: 878
call:
this.cardForm = this.fb.group({...)}
in constructor, instead of ngOnInit()
Upvotes: 0
Reputation: 3418
You don't have an id
in your input
tag.
Try to insert
<input
id="card_number"
...
>
Update 1 If you could provide some more code that would help a lot. Since there is a Validators.required it should have a value. Anyways, just a hunch try to use this on your input.
[formControl]="cardForm.controls['card_number']"
instead of
formControlName="card_number"
Upvotes: 1