Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 5个文件字段,1个验证所有_Javascript_Jquery - Fatal编程技术网

Javascript 5个文件字段,1个验证所有

Javascript 5个文件字段,1个验证所有,javascript,jquery,Javascript,Jquery,我有5个文件输入,我使用以下代码执行文件验证: $("#fileinput").change(function() { var file = this.files[0]; var fileType = file.type; var match = ['application/pdf', 'image/jpeg', 'image/png', 'image/jpg']; if(!((fileType == match

我有5个文件输入,我使用以下代码执行文件验证:

$("#fileinput").change(function() {
        var file = this.files[0];
        var fileType = file.type;
        var match = ['application/pdf', 'image/jpeg', 'image/png', 'image/jpg'];
        if(!((fileType == match[0]) || (fileType == match[1]) || (fileType == match[2]) || (fileType == match[3]) || (fileType == match[4]) || (fileType == match[5]))){
                Swal.fire("Erro: Invalid file format!", "Only: PDF, JPG, JPEG e PNG", "error");
                $("#docpessoal").val(null);
                $(".custom-file-label").text('Selecionar documento...');
                return false;
        }
});
我不想对每个文件输入重复该函数,而是希望使用相同的函数,但根据用户单击的输入更改选择器ID。(我不确定这是否可能)

下面是我试图做到这一点的代码:

var nomeInput = '_';
    $('input[type="file"]').click(function(){
    var nomeInput = $(this).attr('id');
});
我试图在.change选择器中使用变量nomeInput,但它不起作用。
还有其他方法可以实现吗?

将更改事件委托给表单,在处理程序中,通过事件对象获取对更改输入的引用,处理程序函数中不需要任何混乱的标识符或DOM遍历。像这样:

$('.validate form')。在('change','[type=“file”]”上,e=>{
const type=e.target.files[0]。类型;
if(!/application\/pdf | image\/jpe?g | image\/png/.test(type)){
log('文件类型不匹配');
}否则{
console.log('接受的文件类型')
}
});



@Teemu,你能给我举个例子吗?太棒了,非常感谢你的帮助!!!