代码之家  ›  专栏  ›  技术社区  ›  Adrian Brand

从TypeScript提交表格

  •  -1
  • Adrian Brand  · 技术社区  · 7 年前

    我想从TypeScript提交一份表单。我有一些表单验证指令,用于监听表单上的提交事件,因此我需要提交表单,而不仅仅是从ngForm的事件发射器发出。

    到目前为止,我唯一想到的就是点击submit按钮,但感觉很脏。

    (document.querySelector('button[type="submit"]') as HTMLElement).click();
    

    对于让原生表单元素提交,有人有其他建议吗?

    2 回复  |  直到 7 年前
        1
  •  0
  •   Adrian Brand    7 年前

    为了回答我自己的问题,我改变了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事件。

        2
  •  -2
  •   zhimin    7 年前

    不建议在angular应用程序中使用查询。你可以用 ViewChild 获取表单元素。

    推荐文章