使用JQuery定义打印稿件和文件

时间:2016-09-28 14:38:01

标签: javascript jquery typescript

我正在使用打字稿,我有一个文件上传表格。但我的打字稿返回错误。

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

这是错误:

  

“元素”类型

上不存在属性“文件”

如何解决此错误?

3 个答案:

答案 0 :(得分:0)

对于打字稿文件,不是HTMLElement类型的方法。尝试将元素的类型更改为HTMLInputElement

实施例

let fileInput : HTMLInputElement = <HTMLInputElement>document.getElementById('input');

答案 1 :(得分:0)

错误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];
  ...  
});

答案 2 :(得分:0)

请记住,$(...)始终返回元素列表。用[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

的元素