【问题标题】:ERROR TypeError: Failed to construct 'FormData': parameter 1 is not of type 'HTMLFormElement'错误类型错误:无法构造“FormData”:参数 1 不是“HTMLFormElement”类型
【发布时间】:2020-01-25 18:15:08
【问题描述】:

我正在尝试从 html 表单创建 FormData 对象

<form #basicForm ="ngForm" (ngSubmit)="basicFormSubmit(basicForm.value)">
                            <label for="name">Name</label>
                            <input id="name" name="name" class="form-control"
                                   ngModel>



                            <label for="age">Age</label>
                            <input type="number" name="age" id="age" class="form-control"
                             ngModel>



                            <button type="submit" class="btn btn-sm btn-primary"><i class="fa fa-dot-circle-o"></i> Submit</button>                          
                    </form>

控制表单提交的Angular方法

basicFormSubmit(data){
  let formdata= new FormData(data);  
  console.log(formdata);
  this.http.post("http://localhost:8080/testproject",formdata).subscribe();
  }

但我收到以下错误ERROR TypeError: Failed to construct 'FormData': parameter 1 is not of type 'HTMLFormElement

如何解决这个问题?

【问题讨论】:

  • 你想用这个信息{name: '___', age: __}创建一个表单吗?您想在这里达到什么目标?
  • @NicholasK 是的,这就是我想做的事
  • 为什么不使用响应式表单?

标签: angular typescript


【解决方案1】:

使用此方法将对象转换为FromData

for (const key in data) {
    formdata.append(key, data[key]);
}

【讨论】:

  • 成功了。但是你知道为什么let formdata= new FormData(data) 不起作用吗?
  • 您只能将 HTMLFormElement 发送到 FromData 构造函数。 MDN Docs
猜你喜欢
  • 1970-01-01
  • 2023-02-08
  • 2019-11-22
  • 2021-07-11
  • 2018-08-18
  • 1970-01-01
  • 2019-09-01
  • 1970-01-01
  • 2017-02-19
相关资源
最近更新 更多