Javascript JQuery循环所有文件输入字段以获得大小

Javascript JQuery循环所有文件输入字段以获得大小,javascript,jquery,Javascript,Jquery,我正在尝试遍历所有文件输入字段,并设置一条错误消息(如果任何字段超过5MB),作为表单验证的第一步 我正在使用提交按钮上的单击事件。问题是“键”没有定义 此表单最多可以有10个文件输入字段,通过名为images[]AJAX添加 /* loop through all file inputs to check size */ $("#my-form").find("input[type='file']").each(function(key, value) {

我正在尝试遍历所有文件输入字段,并设置一条错误消息(如果任何字段超过5MB),作为表单验证的第一步

我正在使用提交按钮上的单击事件。问题是“键”没有定义

此表单最多可以有10个文件输入字段,通过名为
images[]
AJAX添加

        /* loop through all file inputs to check size */
        $("#my-form").find("input[type='file']").each(function(key, value) {
            var el = this.files[key];
            if(el.size > 5242880 || el.fileSize > 5242880) {
                errorMessage = 'Files must be less than 5MB.';
            }
        });
如果我使用
this.files[0]
我可以得到第一个字段的大小,但是在遍历所有元素时遇到问题。感谢您的意见或其他解决方案。多谢

你可以这样做

$("#my-form").find("input[type=file]").each(function(index, field){
   const file = field.files[0];
   if(file.size > 5242880 || file.fileSize > 5242880) {
      errorMessage = 'Files must be less than 5MB.';
   }
});
这是一把小提琴:

对于具有多个属性的文件输入

$("#my-form").find("input[type=file]").each(function(index, field){
  for(var i=0;i<field.files.length;i++) {
    const file = field.files[i];
    if(file.size > 5242880 || file.fileSize > 5242880) {
      errorMessage = 'Files must be less than 5MB.';
      alert(errorMessage);
    }
  }
});
$(“#我的表单”).find(“输入[type=file]”)。每个(函数(索引,字段){
对于(变量i=0;i 5242880 | | file.fileSize>5242880){
errorMessage='文件必须小于5MB';
警报(错误消息);
}
}
});
这是一把小提琴:


第二个键非常适合用于任何单个或多个文件输入。

我在获取第一个键[0]时没有问题,它是后面的键。你的小提琴只对第一个有效。我刚刚检查了它对两个不同输入中的两个文件有效。也许我不明白你到底想要什么。它是关于多个文件输入的吗?将第一个文件留空,只在第二个输入中添加一个文件。如果发现变量
file
未定义,则转到错误处理,跳过它或执行任何操作。我看到您在小提琴中添加了for循环。让我明天更新我的代码,我想这会有用的。