1

こんにちは、このコードを使用して、ユーザーが 5 MB を超える重いファイルをアップロードできないように制限しています。ただし、これは最初のファイルでのみ機能し、残りのファイルでは機能しません。

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());

}

このすべてのブラウザをチェックしてハッキングを試みましたが、何かがおかしいようで、正しく動作していないようです。

4

1 に答える 1

0

$('.input_holder') でイベントをバインドできますか? 要素はすべてのファイル入力を保持しているように見えるので、変更イベントを親にバインドするだけで済みます。

$(".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);
          }
        }
}); 
于 2013-05-23T08:28:40.837 に答える