我想从TypeScript提交表单。我有一些表单验证指令,可以监听表单上的Submit事件,因此我需要提交表单,而不仅仅是从ngForm的事件发射器中发出。
到目前为止,我唯一想到的就是单击“提交”按钮,但是感觉很脏。
(document.querySelector('button[type="submit"]') as HTMLElement).click();
有人对提交本机表单元素还有其他建议吗?
答案 0 :(得分:0)
要回答我自己的问题,我更改了我的焦点优先无效指令的工作方式。该指令侦听表单上的Submit事件,并查找所有ng无效的类,然后将第一个集中(如果有)。
我将指令从侦听提交事件更改为
@HostListener('submit', ['$event'])
onSubmit(event) {
注入ngForm对象并订阅Submit事件发射器。
constructor(form: NgForm, el: ElementRef) {
this.subscription = form.ngSubmit.subscribe(_ => {
this.onSubmit(el.nativeElement);
});
}
现在,该指令在Angular ngForm对象提交时触发,而我不必担心本地DOM事件。
答案 1 :(得分:-2)
不建议在angular应用中使用查询。您可以使用ViewChild
来获取表单元素。