Javascript 使用多个文件进行Dropzone js上载验证

Javascript 使用多个文件进行Dropzone js上载验证,javascript,jquery,dropzone.js,Javascript,Jquery,Dropzone.js,我目前正在使用Dropzonejs上传文件。对于每个文件,我都会附加一个表单字段。我必须这样做,如果该文件附带的表单字段不是空的,我想上传。否则,我会在缩略图下方显示错误消息。我已经基本完成了这项工作 我面临的唯一问题是,假设选择了3个文件。第一个没有附加表单字段,但是第二个和第三个附加了表单字段。显示错误消息,说明表单字段是必需的。但是其余的文件,第二和第三个都没有上传。只有当我在第一个字段中提供必填字段时,它才会上载 所以,我的问题是,如何只上传那些附加了表单字段的内容,而将其余内容保留在D

我目前正在使用Dropzonejs上传文件。对于每个文件,我都会附加一个表单字段。我必须这样做,如果该文件附带的表单字段不是空的,我想上传。否则,我会在缩略图下方显示错误消息。我已经基本完成了这项工作

我面临的唯一问题是,假设选择了3个文件。第一个没有附加表单字段,但是第二个和第三个附加了表单字段。显示错误消息,说明表单字段是必需的。但是其余的文件,第二和第三个都没有上传。只有当我在第一个字段中提供必填字段时,它才会上载

所以,我的问题是,如何只上传那些附加了表单字段的内容,而将其余内容保留在Dropzone区域,供用户填写表单字段

更新: 添加文件后,用户需要在表单字段中输入值。如果表单字段未填写,则会显示错误消息,文件不会上载,但仍保留在队列中。否则,如果该字段已填充,则会上载该文件。

您可能会挂接到一个

accept
功能:

是一个函数,它获取一个文件和一个done函数作为参数。如果在没有参数的情况下调用done函数,则将处理该文件。如果您传递错误消息,将显示该消息,并且不会上载该文件。如果文件太大或与mime类型不匹配,则不会调用此函数

不幸的是,这似乎是自动调用后立即下降


您可能会发现其他事件更适合您的应用程序,例如
send:function(file,xhr,formData)

谢谢您的时间和努力。事实上,我没有完全解释清楚。表单字段在添加文件后添加。因此,用户可以指定文件的用途。因此addedfile事件不起作用。我正在处理事件,并将file.status更改为Added,但即使没有表单字段,也会上载该文件。在我的一个项目中,我必须用自己的集合跟踪dropzone队列。我关闭了autoProcessQueue并忽略了Dropzone的队列。这是为了自定义大小,所以我基本上只是使用Dropzone作为UI,并管理自己的文件队列。这可能就是您可能需要做的。也许只需关闭自动进程并直接自己调用
dz.processQueue()
就足够了。在调用processQueue()之前,请尝试使用并检查集合。嘿@Jansen,我对您的建议有了更好的理解。我想到的是,当上传被点击时,我验证表单输入,并在文件有表单输入时传递给Dropzone uploadFile(file)函数。否则,将它们放入队列中。干杯你能提供一把小提琴吗?
dz.options = {
    accept: function(file, done) {
        if (valid) {
            done();
        }
        else {
            done("error message");
        }
    }
}