IE8和IE9上的Javascript错误

ron*_*nan 6 javascript internet-explorer

我得到'this.0.files.0'为null或IE8和IE9上没有对象错误,Chrome和Mozila不会抛出任何错误.

$(function()) {
    var fileType = ['txt' , 'csv' ];
    $('.input_file').find('input [type = "file" ]').live('change', function (e)) {
        $this = $(this) 
        var ext = $this.val() === " " ? " " : this.value.match(/\.(.+)$/)[1];
        if($this.val()) {
            $this.parent().find('label').text.($this[0].files[0].name)  
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我不知道为什么上面的代码抛出一个javascript错误'this.0.files.0'是null或不是一个对象

Mus*_*usa 11

IE <10不支持html5 fileapi,即不需要HTMLInputElement.FileList解析HTMLInputElement.value来获取文件名.

  • @ronan` $ this [0] .files`是[FileList]的一个实例(http://www.w3.org/TR/FileAPI/#dfn-filelist),它是html5 [FileApi]的一部分( http://www.w3.org/TR/FileAPI/).这个api在IE <10中不可用,而是可以从`$ this [0] .value`属性或`$ this.val()获取文件名. (3认同)