使用带有Rails的jQuery文件上载

时间:2014-02-04 01:29:10

标签: jquery ruby-on-rails ruby-on-rails-4

我按照Railscasts剧集(http://railscasts.com/episodes/381-jquery-file-upload)来上传我的网站上传文件。一切都按照教程的方式工作,但我想改变一件事,到目前为止还没有成功。

我想表示在他们点击提交按钮之后才提交。现在,我相信使用以下js,表单会在用户找到文件时提交。

#Snippet
data.submit()


#Whole JS File
jQuery ->
  $('#new_update').fileupload
    dataType: "script"
    add: (e, data) ->
      types = /(\.|\/)(gif|jpe?g|png)$/i
      file = data.files[0]
      if types.test(file.type) || types.test(file.name)
        data.context = $(tmpl("template-upload", file))
        $('#new_update').append(data.context)
        data.submit()
      else
        alert("#{file.name} is not a gif, jpeg, or png image file")
    progress: (e, data) ->
      if data.context
        progress = parseInt(data.loaded / data.total * 100, 10)
        data.context.find('.bar').css('width', progress + '%')

我宁愿删除它并使用按钮代替,因为我有一个textarea,我希望用户在提交表单之前填写。

如何在用户点击按钮之后暂停图像上传???

更新

完整的JS文件

jQuery ->
  $('#new_update').fileupload
    dataType: "script"
    add: (e, data) ->
      types = /(\.|\/)(gif|jpe?g|png)$/i
      file = data.files[0]
      if types.test(file.type) || types.test(file.name)
        data.context = $(tmpl("template-upload", file))
        $('#new_update').append(data.context)
      else
        alert("#{file.name} is not a gif, jpeg, or png image file")

      $("#submt_button").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 + '%')

2 个答案:

答案 0 :(得分:2)

正如原始答案所述,您可以通过删除data.submit()来实现此目的,但是,您需要确保“提交”事件触发了JQuery文件上传:

jQuery file upload: Is it possible to trigger upload with a submit button?

#Whole JS File
jQuery ->
  $('#new_update').fileupload
    dataType: "script"
    add: (e, data) ->
      types = /(\.|\/)(gif|jpe?g|png)$/i
      file = data.files[0]
      if types.test(file.type) || types.test(file.name)
        data.context = $(tmpl("template-upload", file))
        $('#new_update').append(data.context)
      else
        alert("#{file.name} is not a gif, jpeg, or png image file")

      $("#submit_button").on 'click', (formEvent) ->
        formEvent.preventDefault()
        data.submit()

    progress: (e, data) ->
      if data.context
        progress = parseInt(data.loaded / data.total * 100, 10)
        data.context.find('.bar').css('width', progress + '%')

答案 1 :(得分:0)

查看js,我注意到有一个data.submit(),删除它,它不应该提交表单