3

现在它的作用是允许我选择文件,但我需要单击一个额外的“提交”按钮来提交表单。是否可以将浏览按钮的功能与表单提交结合起来?Rails 中是否有功能,或者我是否需要使用 javascript 创建自定义 ajax 调用?谢谢!

当前代码:

  = form_for @user, :url => add_file(@user), :remote => true do |f|
      = file_field_tag :file
4

3 回答 3

1

为此,您肯定需要使用 jquery ......我使用以下功能做了同样的事情

这是我的html代码:-

<div class="third"><input name="upload" value="" type="text"/>&nbsp;<span class="activebtn sm"><a href="" class="btn">Browse...</a></span><input type="file" name="images[]" onchange="displayPreview(this.files,this)" class="image_upload" size="23" id="image_upload1"/></div>

在改变我写了jquery

 function displayPreview(files,obj)
  {
    curr_file_obj = $(obj);
    if(window.FileReader)
    {
      var reader = new FileReader();
      reader.onload = onFileLoad;
      reader.readAsDataURL(files[0]);
    }

  }

我的要求是上传图像并在上传后立即显示其预览。

于 2012-10-06T05:16:04.853 回答
1

Rails 没有这样的功能。

您需要编写 javascript 来执行此操作,但您不需要进行 ajax 调用。

相反,定义 file_field_tag 但使用 CSS display:none; 将其隐藏。然后定义一个实现你的javascript的按钮。您的 javascript 应该调用隐藏的 file_field_tag,然后提交表单。

<% form_for @user, :url => add_file(@user), :remote => true do |ff| %>
  <%= ff.file_field_tag "file", "id" => "file_select_input", "style" => "display:none" %>
  <%= ff.button "upload", "onclick" => "<your-javascript-call>" %>
<% end %>

很抱歉没有用 HAML 写这个,但我把它留给你。:)

于 2012-10-05T21:31:13.477 回答
0

Rails 不可能,但您可以考虑使用像Fine Uploader这样的 javascript 插件

于 2012-10-06T06:20:26.387 回答