我有多个文件上传输入。我正在尝试验证每个文件的大小。它可以工作,但取决于选择文件的顺序。我讨厌javascript,我很烂,请帮忙。
http://jsfiddle.net/2u9kq7fe/1/
$('input[type="file"]').change(function(){
var imageSizeArr = 0;
var imageSize = document.getElementById('blah');
var imageCount = imageSize.files.length;
for (var i = 0; i < imageSize.files.length; i++)
{
var imageSize = imageSize.files[i].size;
if (imageSize > 5000000) {
$('#test').text('3');
var imageSizeArr = 1;
}
if (imageSizeArr == 1)
{
$('.element').text('files too big');
}
else if (imageSizeArr == 0)
{
$('.element').text('files not too big');
}
}
});
您正在定义对输入字段的引用:
var imageSize = document.getElementById('blah');
然后在for循环中,您再次重新定义它,因为:
for (var i = 0; i < imageSize.files.length; i++) {
var imageSize = imageSize.files[i].size;
请记住,javascript中没有块作用域,因此var imageSize
循环会影响先前定义的值。
这是你的问题。在循环中选择其他名称作为大小,它将起作用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句