1

我在一个页面上有多个文件输入。这些是唯一定义的,我不能为此使用多个属性。当他们提交此表单时,脚本会运行并检查每个上传元素上的空值。

我创建了一个小的状态加载器,它为用户提供了一些很好的视觉反馈,并且我想做的一部分是向他们展示总上传大小。不幸的是,我所写的是针对 DOM 元素而不是它引用的实际文件。我已经阅读了 API 文档和这个,但我在这里遗漏了一些东西。

jQuery( "#submit" ).on("click", function(event) {

    var inputs = document.getElementsByTagName('input'),
        files = [],
        size;

    for(i=0; i<inputs.length; i++) {
        if( inputs[i].getAttribute('type') == "file" && inputs[i].value != 0 ) {
            files.push(inputs[i].id);       
            }
        }

    for(j=0; j<files.length; j++) {
        size += document.getElementById(files[j]).size;
        }

    console.log(size); //returns NAN

//other stuff
});

谢谢

4

1 回答 1

3

我认为你不能这样做:document.getElementById(files[j]).size.size那里不存在该属性。

尝试阅读document.getElementById(files[j]).files

你可以这样:document.getElementById(files[j]).files[0].size

我觉得你有multiple="multiple"没有没关系。

请记住,您的代码中存在错误。sizeisundefinedundefined + 1234is NaN(Not a Number)的初始值

于 2013-06-26T10:56:00.910 回答