如何遍历表单中的元素以检查哪些元素被触摸?

时间:2018-10-09 22:17:10

标签: javascript angular typescript angular-reactive-forms

我正在Angular 6中使用反应式表单。我有一个包含多个选择输入和复选框元素的表单。我当前正在获取每个输入的值,并在用户单击“应用”按钮时将其传递给router.navigate()。

我想更改我的功能,并且仅当用户触摸输入时才获取每个选择输入和复选框元素的值。不需要任何字段,因此用户可能不会触摸多个输入。这样,我的网址将不会被一堆空值污染。然后,我想拿该对象并将其传递给我的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 个答案:

答案 0 :(得分:0)

尝试使用.dirty,如果用户已经与表单进行了交互,则为TRUE。