2015-02-10 39 views
1

我在互联网上得到了这个jquery文件类型验证。它效果很好。我后来添加了一些代码来验证文件的大小。但是,当我的文件大小大于50KB时,它不会引发警报框。我只是学习jquery,所以我不确定我添加的内容是否正确。请帮忙。Jquery文件大小验证不起作用

这里是JSFIDDLE

下面是代码:

<script> 
$(document).ready(function() { 
$('input[type=file]').change(function() { 
var val = $(this).val().toLowerCase(); 
var regex = new RegExp("(.*?)\.(jpg|jpeg|gif)$"); 
if(!(regex.test(val))) { 
$(this).val(''); 
alert('Unsupported file'); 
} 
if ($(this).files.size > 50000 || $(this).files.fileSize > 50000) 
    { 
     //reset file upload control 
     $(this).val(''); 
     //show an alert to the user 
     alert('Allowed file size exceeded 50KB'); 


    } 
}); }); 
</script> 

这是我加入到现有代码:

if ($(this).files.size > 50000 || $(this).files.fileSize > 50000) 
    { 
     //reset file upload control 
     $(this).val(''); 
     //show an alert to the user 
     alert('Allowed file size exceeded 50KB'); 


    } 

回答

2

工作拨弄HERE

代码

$(document).ready(function() { 
$('input[type=file]').change(function() { 
var val = $(this).val().toLowerCase(); 
var regex = new RegExp("(.*?)\.(jpg|jpeg|gif)$"); 
if(!(regex.test(val))) { 
$(this).val(''); 
alert('Unsupported file'); 
} 
if (this.files[0].size > 50000 || this.files[0].size > 50000) 
    { 
     //reset file upload control 
     $(this).val(''); 
     //show an alert to the user 
     alert('Allowed file size exceeded 50KB'); 


    } 
}); }); 

详情请参阅Here。它使用this.files[0].size表示获取第一选择文件的文件大小(如果启用了multiselect,检查第一个图像),无论如何,您没有多选,因此您可以使用第0个索引选择文件来访问它,因为在常规操作中只能选择1个文件。

+0

如果我在我的形式6 ? – 2015-02-10 07:41:16

+0

@GiangNguyen,没有多个文件的问题。这里检查=> http://jsfiddle.net/5h29Lxv7/2/。它只是确保每个它检查多选的情况下第一个选定的文件 – 2015-02-10 07:42:55

+0

真棒非常感谢你 – 2015-02-10 07:51:32

-1

$(document).ready(function() { 
 
$('input[type=file]').change(function() { 
 
var val = $(this).val().toLowerCase(); 
 
var regex = new RegExp("(.*?)\.(jpg|jpeg|gif)$"); 
 
if(!(regex.test(val))) { 
 
$(this).val(''); 
 
alert('Unsupported file'); 
 
} 
 
if (this.files[0].size > 50000) 
 
    { 
 
     //reset file upload control 
 
     $(this).val(''); 
 
     //show an alert to the user 
 
     alert('Allowed file size exceeded 50KB'); 
 

 

 
    } 
 
}); });
<input type="file"/>

+0

我不认为它反正不同于回复我发布 – 2015-02-10 07:46:24

+0

没有必要this.files [0] .size> 50000条件两次,我想 – kpearlkmanic 2015-02-10 07:47:48