2016-11-09 56 views
0

我在页面上有几个按钮。当我点击每个按钮时,我需要加载文件。如何使用Dropzone JS在页面上的某个按钮?

每个按钮都有独特的data-id属性,我点击它时必须通过请求AJAX传递。

如何使用Dropzone插件来做到这一点?

+0

我看不到文档中的示例 – MisterPi

+0

你是说你想要按钮而不是dropzone吗? –

+0

是的,我的意思是链接'a'与'btn' bootsratp类 – MisterPi

回答

1

按照要求,这里是一个如何创建一个按钮的示例,该按钮将使用Bootstrap上传文件和数据属性。

<button class='btn btn-default chooser' data-id='hello'>Choose a file</button> 

的JS需要这个辅助库我写了这个确切的目的:fileUpload.js

$(".chooser").each(function() { 
    var ele = this; 
    $(ele).fileUpload({ 
     change: function() { 
      // Get the files from the input 
      var files = $(ele).fileUpload("getFiles"); 
      var formData = new FormData(); 
      for (var i = files.length; i--;) 
       formData.append('myFiles[]', self.files[i], self.files[i].name); 
      // Get the data attribute from the button 
      formData.append('data-id', $(ele).data('id')); 
      $.ajax({ 
       url: "http://mywebsite.com/uploads", 
       type: 'POST', 
       data: formData, 
       processData: false, 
       contentType: false, 
      }).always(function(xhr) { 
       // all done. do something with the response here 
      }); 
     } 
    }); 
}); 

还有其他的选择,你可以限制其只接受特定类型的文件或多个文件等见上面的链接了解更多信息。

+0

您使用'id',所以ig我有100个按钮,我应该每次复制您的代码 – MisterPi

+0

@MisterPi - 这只是一个例子。您可以轻松使用类。 –

+0

好的,那么在这个事件中如何获取data-id属性呢? – MisterPi

相关问题