簡體   English   中英

jQuery文件上傳在rails點擊按鈕

[英]Jquery file upload in rails on button click

我正在使用jquery-fileupload插件( https://github.com/tors/jquery-fileupload-rails )在Rails應用程序中顯示文件上傳進度。 下面的代碼可以正常工作。

在我的index.html.erb中,我有

  <script id="template-upload" type="text/x-tmpl">
  <div class="upload">
    {%=o.name%}
    <div class="progress"><div class="bar" style="width: 0%;"></div></div>
  </div>
  </script>

在我的項目js.coffee文件中

$('#import_form').fileupload
    dataType: "json"
    add: (e, data) ->
      data.context = $(tmpl("template-upload", data.files[0]))
      $('#import_form').append(data.context)
      data.submit()
    progress: (e, data) ->
      if data.context
        progress = parseInt(data.loaded / data.total * 100, 10)
        data.context.find('.bar').css('width', progress + '%')

但是我希望當我單擊ID為import_button的按鈕而不是自動單擊時開始上載。 我該如何實現?

我嘗試執行以下操作,但收到錯誤消息“數據未定義”

$('#import_form').fileupload
    dataType: "json"
    add: (e, data) ->       
      data.context = $(tmpl("template-upload", data.files[0]))
      $('#import_form').append(data.context)
      $("#import_button").off("click").on "click", ->
        data.submit()
    progress: (e, data) ->
      if data.context
        progress = parseInt(data.loaded / data.total * 100, 10)
        data.context.find('.bar').css('width', progress + '%')

請幫忙謝謝

一個特殊的回調是add回調,因為它為data參數提供了一個commit方法,它將開始文件上傳:

$('#fileupload').fileupload({
    add: function (e, data) {
       data.submit();
    }
});

來自jQuery Plugin Wiki

因此,如果您不想自動開始上傳,請使用add回調,但不要調用Submit方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM