循环输入文件不起作用

时间:2017-05-31 10:42:14

标签: jquery jquery-ui

我正在使用一个jquery插件,它在浏览器中的表单中呈现,如

   <html>
   <body>
   <form...>  
   <input type="file" id="ajax-upload-id-1496226711376" name="upload[]" accept="*" multiple="" style="position: absolute; cursor: pointer; top: 0px; width: 100%; height: 100%; left: 0px; z-index: 100; opacity: 0;">
  ... 
  </form>
    ...
     <button id="submit" type="button">Submit</button>

请注意,提交按钮不是插件的一部分

我试过以下

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

           var files = $("input:file")[0].files;

            for (var i = 0; i < files.length; i++)
            {
              alert(files[i].name);
            }

           });

它无法正常工作!!!

请帮忙......

2 个答案:

答案 0 :(得分:0)

我只能猜测,因为我不知道你使用的是哪个插件。但是你说表单内容是由插件呈现/替换的。因此,jQuery无法访问输入,因为加载时jQuery无法识别它。那么这样的事可以帮到你吗?如果没有,请告诉我们您正在使用的插件,并可能提供更多代码。

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

    var files = $(document).find('input[type="file"]')[0].files;

    for (var i = 0; i < files.length; i++)
    {
        alert(files[i].name);
    }
});

请注意,这只是基于评论中的工作示例的猜测...

答案 1 :(得分:0)

以下代码适合您。

<强>的JavaScript

$("#submit").click(function() {
  var files = $("input:file")[0].files;
  console.log("Files uploaded:", files);
  $.each(files, function(key, val) {
    console.log(val.name);
  });
});

工作示例:https://jsfiddle.net/Twisty/j5c5qvg4/

或者:https://jsfiddle.net/Twisty/j5c5qvg4/3/