Angular 从TypeScript提交表单
我想从TypeScript提交一份表格。我有一些表单验证指令,用于侦听表单上的提交事件,因此我需要提交表单,而不仅仅是从ngForm的事件发射器发出Angular 从TypeScript提交表单,angular,Angular,我想从TypeScript提交一份表格。我有一些表单验证指令,用于侦听表单上的提交事件,因此我需要提交表单,而不仅仅是从ngForm的事件发射器发出 constructor(form: NgForm, el: ElementRef) { this.subscription = form.ngSubmit.subscribe(_ => { this.onSubmit(el.nativeElement); }); } 到目前为止,我唯一想到的是点击submit
constructor(form: NgForm, el: ElementRef) {
this.subscription = form.ngSubmit.subscribe(_ => {
this.onSubmit(el.nativeElement);
});
}
到目前为止,我唯一想到的是点击submit按钮,但感觉脏兮兮的
(document.querySelector('button[type="submit"]') as HTMLElement).click();
有人对如何提交本机表单元素还有其他建议吗?不建议在angular应用程序中使用查询。您可以使用
ViewChild
获取表单元素。为了回答我自己的问题,我更改了focus first无效指令的工作方式。该指令侦听表单上的submit事件,查找任何无效类,然后聚焦第一个类(如果有)
我将指令从侦听submit事件更改为
@HostListener('submit', ['$event'])
onSubmit(event) {
注入ngForm对象并订阅submit事件发射器
constructor(form: NgForm, el: ElementRef) {
this.subscription = form.ngSubmit.subscribe(_ => {
this.onSubmit(el.nativeElement);
});
}
现在,当Angular ngForm对象提交时,该指令将触发,我不需要担心本机DOM事件。我已经尝试过了,但在本机元素上调用submit会导致表单向服务器完整发回,并重新加载整个应用程序。如果要以异步方式提交表单,可以使用
FormData
api()如果您想手动验证表单,请参阅此处的NgForm
api