Javascript 5个文件字段,1个验证所有
我有5个文件输入,我使用以下代码执行文件验证: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
$("#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,你能给我举个例子吗?太棒了,非常感谢你的帮助!!!