3

現在、ファイルを選択できますが、フォームを送信するには、追加の[送信]ボタンをクリックする必要があります。参照ボタンの機能をフォーム送信と組み合わせることは可能ですか?Railsに機能はありますか、それともjavascriptを使用してカスタムajax呼び出しを作成する必要がありますか?ありがとう!

現在のコード:

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

3 に答える 3

1

Railsにはそのような機能はありません。

これを行うにはjavascriptを作成する必要がありますが、ajax呼び出しを行う必要はありません。

代わりに、file_field_tagを定義しますが、CSS display:none;で非表示にします。次に、JavaScriptを実装するボタンを定義します。JavaScriptは隠しファイルと隠しファイルを呼び出してから、フォームを送信する必要があります。

<% 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 に答える
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 に答える
0

Railsでは不可能ですが、ファインアップローダーのようなjavascriptプラグインの使用を検討することができます

于 2012-10-06T06:20:26.387 に答える