Basically, I have
<form #f="ngForm" (ngSubmit)="save(f.form)" #formElement>
...
<button class="btn btn-primary" #saveButton>Save</button>
</form>
I want to be able to trigger submit()
from the component.
I've tried @viewChild('formElement')
and renderer.invokeElementMethod
to trigger click()
.
The ngSubmit event emits the original form submission event.
In case you want to reference a directive like ngForm instead of the DOM element where the variable was declared, you simply need to set the value of the variable explicitly to the directive i.e #myForm="ngForm" . The component will be automatically added to your module by the Angular CLI.
NgForm has property ngSubmit
which is EventEmitter. So doing emit()
on this property from the component will trigger a submit.
Also you need to use your f
variable instead of formElement
because f
is referencing to ngForm
.
@ViewChild('f') form: NgForm;
form.ngSubmit.emit();
I was trying that ngSubmit.emit()
approach to update the validation state of the form fields from component, now this can be done with:
this.formGroup.markAllAsTouched();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With