rails フォームを使用して、carrierwave アップローダーに画像を送信しています。
<p class="sidebar-title">UPLOAD IMAGE</p>
<%= form_for :page_image, :url => {:controller => :menus, :action => :create_image}, :html => {:multipart => true, :id => "image-upload-form"} do |f| %>
<ul>
<li class="sub-heading">Choose Image</li>
<li><%= f.file_field :image %></li>
<li class="sub-heading" style="text-align: center; width:50%; margin: 1.5em 25%">OR<br></li>
<li class="sub-heading">Image URL</li>
<li><%= f.text_field :remote_image_url %></li></ul>
<ul>
<li class="description"><%= f.radio_button :authored, "true" %>
<%= f.label :authored, "I am the author of this image and give permission for Gastromica to use it.", :value => "true" %></li>
<li class="description"><%= f.radio_button :authored, "false" %>
<%= f.label :authored, "This image is licenced to be freely be used and shared cormercially. If attribution is required please type a url in the box below.", :value => "false" %></li>
<li class="sub-heading">Attribution / Source URL</li>
<li><%= f.text_field :attribution %></li></ul><ul>
<%= f.hidden_field :user_id, :value => "1" %>
<% @attributes.each do |attr| %>
<%= hidden_field_tag attr[0], attr[1]%>
<% end %>
<li><%= f.submit "Submit Image", :class => "image-upload" %></li>
<% end %>
ユーザーが表示したい画像をアップロードしているためです。アップロードが進行中であることを示す何か。そのため、次の JavaScript を記述します。
('.image-upload').click(function() {
$(this).parents('.content').html('<p class="description" >Please wait, currrently uploading image...</p>')
});
これは Safari では問題なく機能しますが、他のブラウザではフォームの送信が妨げられ、画像がアップロードされません。すべてのブラウザで、スクリプトがなくてもすべて正常に動作しているようです。送信フォームの URL をキャプチャして、画像の読み込みメッセージを表示した後に強制的に送信する方法はありますか?