File 验证失败后如何清空文件上传的值?

File 验证失败后如何清空文件上传的值?,file,upload,File,Upload,我有一个文件输入字段来上传图像,并使用JQuery进行验证。但如果验证失败,它仍会上载提交时选择的文件。如果验证失败,有没有办法清除或重置文件字段 <input type="file" name="file" id="file"> $('#file').change(function(){ var ext = $('#file').val().split('.').pop().toLowerCase(); if($.inArray(ext, ['g

我有一个文件输入字段来上传图像,并使用JQuery进行验证。但如果验证失败,它仍会上载提交时选择的文件。如果验证失败,有没有办法清除或重置文件字段

<input type="file" name="file" id="file">


$('#file').change(function(){
        var ext = $('#file').val().split('.').pop().toLowerCase();
        if($.inArray(ext, ['gif','png','jpg','jpeg','pdf']) == -1) {
            alert('Please make sure the types of file allowed to upload are jpg, jpeg, png, gif or pdf only');
        }
        if (this.files[0].size > 2097152) {             
            alert('Your file size is larger then allowed file size limit of 2MB');          
        }
    }); 

$('#file').change(函数(){
var ext=$('#file').val().split('.').pop().toLowerCase();
if($.inArray(ext、['gif'、'png'、'jpg'、'jpeg'、'pdf'])==-1){
警报(“请确保允许上载的文件类型仅为jpg、jpeg、png、gif或pdf”);
}
如果(this.files[0].size>2097152){
警报(“您的文件大小大于允许的2MB文件大小限制”);
}
}); 

验证失败后,将file的值设置为

$('#file').val("");

出于安全原因,无法设置文件输入的值。调用表单的reset方法应该会清除它,但这也会重置其他所有内容。我认为最简单的方法是用一个新的字段替换DOM中的输入字段;也似乎不起作用。