首页 文章

Angular2 - Multiselect和Checkboxes - 仅提交最新选定的值

提问于
浏览
4

我有一个简单的表单,有不同类型的字段 . 在提交表单时,我只打印提交的值 .

对于一些字段看起来很好,但是对于多选和复选框字段它没有预期的效果 .

对于多选和复选框,仅打印最新选定的值 . 相反,我想要一个数组 .

有关如何做到这一点的任何建议?

另外,对于文件附件字段,如何将文件列表添加到原始对象(使用FormBuilder和ControlGroup创建)以及其余字段值?

this.SampleForm = formBuilder.group({
        title: ['', Validators.required],
        description: ['', Validators.required],
        countries: ['', Validators.required],
        attachment: ['', Validators.required],
        continents: ['', Validators.required]
    });

Plunker Link

Form

Output after submit

2 回答

  • 0
    <input type="checkbox" id="SelectAll" name="SelectAll" value="SelectAll" (click)="toggleSelect($event)"  />
    <input type="checkbox" name="data[{{i}}]" [checked]="data.selected" value="data.selected" id="{{data.name}}" (change)="data.selected =!(data.selected)" /> 
     toggleSelect = function(event){     
            this.SelectAll = event.target.checked;
            this.data.forEach(function(item){
    
             console.log(item);
    
             item.selected = event.target.checked;
          });
    
    }
    
  • 0

    如果你想获得所选值的数组,你可以使你的大陆形成一个formarray控件 . 并输入formControlName并选择列表 . 以便选择的值可以作为数组传递 .

相关问题