代码之家  ›  专栏  ›  技术社区  ›  London804

我如何遍历表单上的元素来检查哪些元素被触摸过?

  •  0
  • London804  · 技术社区  · 6 年前

    我在研究角6的反应形式。我有一个带有多个select输入和checkbox元素的表单。我正在获取每个输入的值,并在用户单击apply按钮时将其传递给router.navigate()。

    我想更改我的函数,并且只在用户触摸输入时获取每个select inputs和checkbox元素的值。不需要任何字段,因此用户可能不会接触多个输入。这样我的url就不会被一堆空值污染。然后我想把这个对象传递给我的router.navigate()。

    我开始编写循环遍历元素的函数,但它不起作用。我得到一个

    错误:无法调用类型缺少调用签名的表达式。

    与其试图与原始的价值观作对,我更愿意与错误的价值观作对。任何帮助都将不胜感激。

    addExtraParameters() {
        this.providerForm.controls.forEach(element => {
            if(element.pristine === false ) {
               this.param.push(element); 
            }
        });
    
        this.router.navigate([],
        { queryParams: {
            this.param    // I want to pass the object here
            }, queryParamsHandling: 'merge'
        });
    }
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Marcello Caon    6 年前

    尝试使用.dirty,如果用户已经与窗体交互,则为true。