jQuery文件上传,将文件上传作为Rails

时间:2015-05-14 10:53:06

标签: javascript jquery ruby-on-rails

我有一个包含数据的表(名称,描述,文件等)所有这些都可以使用Rails gem best_in_place和blueimp jQuery文件上传通过AJAX补丁内联编辑。一切正常。

表格的底部是一个表单,允许用户填写所有数据并提交新的表格行。

我无法通过该文件提交此内容,除非它以某种方式提交两次。

形式:

# has class and ID: "new_item"
<%= form_for @item, remote: true do |f| %>

  <%= f.text_field :description, class: "form-control", placeholder: "description" %>
  <%= f.text_field :url, class: "form-control", placeholder: "www.example.com" %>

  # has ID: "item_attachment"
  <%= f.file_field :attachment %>   


  <%= f.submit "add item", class: "btn btn-success" %>
<% end %>

文件上传JS:

  var sendData = true;

  $('.new_item #item_attachment').fileupload({
    dataType : 'javascript',
    autoUpload : false,
    add : function(e,data){
      $("form.new_item").on("submit",function(e){
          var $this = $(this);
          e.preventDefault();
          if(sendData){
              data.formData = $this.serializeArray();              
              sendData = false;
              console.log(data);
          }

          data.submit();
      });
   },
   done: function(e,data){
       sendData = true;
   }
 });

这会两次提交表单。一旦通过没有附件的表单(e.preventDefault();不工作??),并且一次通过jquery上传附件和数据,但它没有提交“作为JS”,所以它不呈现.js模板将新项目附加到表格中。

服务器日志:

Started POST "/items" for 127.0.0.1 at 2015-05-14 17:35:04 +0700
Processing by ItemsController#create as */*
  Parameters: {"utf8"=>"✓", "item"=>{"description"=>"TEST", "attachment"=>#
<ActionDispatch::Http::UploadedFile:0x007fb88d4a9280 @tempfile=#
...removed attachment jargon...

Started POST "/items" for 127.0.0.1 at 2015-05-14 17:35:04 +0700
Processing by ItemsController#create as JS
  Parameters: {"utf8"=>"✓", "item"=>{"description"=>"TEST"...}, "commit"=>"add item"}

0 个答案:

没有答案