上传前检查文件数(jquery)

时间:2014-01-22 13:47:48

标签: jquery upload

我正在尝试在上传之前检查文件数量。 我想只允许3张图片。

 <form   action="upload.php"   enctype="multipart/form-data"   method="post"> 
           <input type="file" name="image[]"  multiple="multiple" /> 
      <input type="submit"   value=" Upload "  class="submit"  />   
</form>

$(function() {
  $(".submit").click(function() {

      var numFiles = $("[name='image[]']", this)[0].files.length;

      if (numFiles > 3) {
               alert(numFiles);
         ;}     

    }); 

 });

这是演示: http://jsfiddle.net/Ld7fE/5/

如何解决此问题? 谢谢

3 个答案:

答案 0 :(得分:1)

试试这个:

$(function() {
  $(".submit").click(function() {

      var _files = $("[name='image[]']").prop("files");

      if (_files.length > 3) {
           alert('not allowed');
               return false;
      }

    }); 

 });

编辑&gt;

$(function() {
  $(".submit").click(function() {

      var fileElements = $("[name='image[]']");

      var filesCount = $(fileElements[0]).prop('files').length;

      if (filesCount > 3) {
           alert('not allowed');
               return false;
      }

    }); 

 });

JSFiddle

答案 1 :(得分:0)

您需要return false来自活动,否则您的表单仍会提交。

尝试以下方法:

$('.submit').on('click', function() {  
    var numFiles = $(this).siblings('input[name="image[]"]')[0].files.length;

    if(numFiles > 3)
    {
        alert(numFiles);
        return false;
    }
});

jQuery Demo

答案 2 :(得分:0)

我用这个来解决:

$("selector_for_file_input").get(0).files.length;

JSFiddle示例。