验证以限制用户表单上传繁重的文件

时间:2013-05-23 08:18:49

标签: javascript validation file-upload limit

您好我使用此代码限制用户上传5mb以上的重文件。但这只适用于第一个文件而不是文件文件的其余部分。

var n=1;
$(document).ready(function()
{
    $('.add_field').click(function(){

        if(n < 5)
        {
        n=n+1;
        var newid="file"+n;
        var input = $('#file1');
        var clone = input.clone(true);
        //clone.removeAttr ('id');
        clone.attr('title','file'+n);
        clone.attr('id','file'+n);
        clone.val('');
        clone.appendTo('.input_holder');}
    });
    $('.remove_field').click(function(){
                if(n!=1)
                {
                n=n-1;
                if($('.input_holder input:last-child').attr('id') != 'input_clone'){
                $('.input_holder input:last-child').remove();
                }
        }
    });

    $("#file1").change(function () 
    {   
        var iSize = ($("#file1")[0].files[0].size / 1024); 
        if(iSize>5000)
        {
            alert("Too Large FIle");
            example_reset_html('file1d');
        }
    }); 

    $("#file2").change(function () 
    {   
        var iSize = ($("#file2")[0].files[0].size / 1024); 
        if(iSize>5000)
        {
            alert("Too Large FIle");
            example_reset_html('file1d');
        }
    }); 



});

function example_reset_html(id) {
$('#'+id).html($('#'+id).html());

}

我检查了所有浏览器并尝试了黑客但似乎有些问题并且无法正常工作。

1 个答案:

答案 0 :(得分:0)

你可以在$('。input_holder')上绑定你的活动吗?看来该元素包含所有文件输入,因此您只需将change事件绑定到其父级。

$(".input_holder").change(function (e) 
    {   
        if(e.target.type==="file"){
          var iSize = (e.target.files[0].size / 1024);
          if(iSize>5000)
          {
              alert("Too Large FIle");
              example_reset_html(e.target.id);
          }
        }
});