画像プレビューをつくりたいだけなのですが、
うまくいきません。
初めて作るので色んなサイトを参考にして記述したのですが、
どこか間違っていますでしょうか?
以下にフォーム部分とjavaScriptの記述を記載します。
よろしくお願いいたします。
Ruby
1 2 <!-- 入力フォーム --> 3 <%= form_with model: @user, local: true do |f| %> 4 5 略 6 7 <div class="file-field"> 8 <i class="fa fa-camera"></i><!-- font awesomeカメラアイコン --> 9 <%= f.label :avatar %><br /> 10 <%= f.file_field :avatar, id: :user_avatar %> 11 </div> 12 13 <div class="img-prev"> 14 <% if @user.avatar.present? %> 15 <%= image_tag @user.avatar, id: :avatar_prev %> 16 <% end %> 17 </div> 18 19 20 <% end %>
jQuery
1//初回読み込み、リロード、ページ切り替えで動く。 2$(document).on('turbolinks:load', function() { 3 4 //newページ画像プレビュー 5 function readURL(input) { 6 if (input.files && input.files[0]) { 7 var reader = new FileReader(); 8 9 reader.onload = function (e) { 10 $('#avatar_prev').attr('src', e.target.result); 11 } 12 reader.readAsDataURL(input.files[0]); 13 } 14 $("#user_avatar").change(function(){ 15 readURL(this); 16 }); 17 } 18 19});
関係ないかもしれませんが、carrierwaveを使用しています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。