2013-04-06 15 views
5

入力タグで最大6つのファイルを選択できるように制限します。現在のところ、私の入力タグは次のようなものです:htmlファイルのアップロード数を制限するにはどうすればよいですか?

<input type="file" name="question_pic" id="id_question_pic" multiple/> 

私は6つまでのファイルを選択するように制限したいと思います。私はサーバー側でエラーを返すことができますが、私はクライアント側で最初に変更します。

これを行う方法はありますか?

ありがとうございました。

答えて

5

次のようなjQueryの機能を使用することができます。

$('.fileinput').change(function(){ 
    if(this.files.length>10) 
     alert('Too many files') 
}); 
// Prevent submission if limit is exceeded. 
$('form').submit(function(){ 
    if(this.files.length>10) 
     return false; 
}); 
+2

ファイルリストの値を次のようにクリアすることで、変更機能の10個以上のファイルをアップロードできないようにすることができます。 'if(this.files.length> 10){alert( 'to many files'); this.value = ''; } ' 残念ながら、ファイルリストオブジェクトからアイテムを削除することはできません。値全体をリセットすることしかできません。 – Marc

1

あなたはこのようなことのためのjQueryやJavaScriptを使用することができます。

<input type="file" name="question_pic" id="id_question_pic" max-uploads = 6/> 

はその後のjQueryであなたはこの

のようにこれを行うことができます
Var number_of_uploads; 
$("#id_question_pic").change(function() { 
    if(number_of_uploads > $(this).attr(max-uploads)) 
    { 
    alert('Your Message'); 
    } 
    else 
    { 
    number_of_uploads = number_of_uploads + 1; 
    } 
}); 

また、ファイルをアップロードしているフォーム提出でこれを行うこともできます。しかし、あなたがAjaxのアップロードを使用している場合、これはいいと思います。

関連する問題