javascript 使用JQuery定义的Typescript和文件上传

izj3ouym  于 2023-05-21  发布在  Java
关注(0)|答案(3)|浏览(139)

我用的是打字机,我有一个文件上传表格。但是我的 typescript 返回了一个错误。

$('body').on('change', '#upload_button input[type="file"]', (evt)=>{
    let file_list = evt.target.files;
});

这就是错误:
类型“Element”上不存在属性“files”
如何修复此错误?

zbwhf8kr

zbwhf8kr1#

记住,$(...)总是返回一个元素列表。用[0]获取第一个(唯一的),并将其转换为HTMLInputElement

$('body').find('#upload_button input[type="file"]')
    .on('change', (evt: JQuery.TriggeredEvent) => {
        let input = <HTMLInputElement>$(evt.currentTarget)[0];
        let file_list = input.files;
        //...
    });

请注意,filesHTMLInputElement的成员

6yt4nkrj

6yt4nkrj2#

因为typescript文件不是HTMLElement类型的方法。尝试将元素的类型更改为HTMLInputElement
示例
let fileInput : HTMLInputElement = <HTMLInputElement>document.getElementById('input');

wsewodh2

wsewodh23#

错误Property 'files' does not exist on type 'Element'的解决方法是:

$('body').on('change', '#upload_button input[type="file"]', (evt)=>{
  evt.preventDefault()
  const fileInput: HTMLInputElement = <HTMLInputElement>document.querySelector(event.currentTarget);
  const file = fileInput.files[0];
  ...  
});

相关问题