Fileupload在Jquery中最近的tr

时间:2016-07-22 11:46:39

标签: javascript jquery html

HTML

<table>
    <tr>
        <td> <input type="file"  /> </td>
         <td> <input type="button" id="btn"  /> </td>      
   </tr>        
    <tr>
    <td> <input type="file"  /> </td>
          <td> <input type="button" id="btn"  /> </td>      
   </tr>

    <tr>
        <td> <input type="file" /> </td>
          <td> <input type="button" id="btn"  /> </td>    
   </tr>

</table>

JQUERY

  var formData = new FormData();
  var tr = $(this).closest('tr');
  var fup = $(tr).find("input[type='file']");
  var totalFiles = fup.length;//Here, getting total file count
  for (var i = 0; i < totalFiles; i++) {
       var file = fup.file[i];//I am getting exception here
       formData.append("fupUpdate", file);
       }

我无法获取附加到formdata的文件列表。

Error Message: "Cannot read property '0' of undefined"

请协助我解决问题。

3 个答案:

答案 0 :(得分:1)

试试此代码

var fData = new FormData();
var tr = $('table').closest('tr');
var fup = $('tr').find("input[type='file']");
var totalFiles = fup.length;//Here, getting total file count
  for (var i = 0; i < totalFiles; i++) {
       var file = fup[i].files[0];//Exception will not occur here
       console.log(file)
       fData.append("fupUpdate", file);
   }

不要创建与FormData同名的局部变量

答案 1 :(得分:1)

你做得对,只需更换

var file = fup.file[i];//I am getting exception here

var file = fup[i].files[0];// no Exception here.

这样可以正常工作。

答案 2 :(得分:1)

我认为问题在于您选择的输入。您可以使用以下选项:

$(":file")

或者

$("table tr :input[type='file']").each(function (i,v) {
      var file=$(v);
      //Your code goes here
});

工作示例JsFiddle