こんな感じのフォームに、
イメージとしては、このように画像が選択されたときにプレビューを表示させたいです。
下記記述はBlogモデルのimagesカラムのフォーム部分です。
json型なので3つフォームを置いています。
今まで1つの画像プレビューのときはこのような記述でできたのですが、
json型ではじめて実装してみて、うまくいかないのですが、
どこをどのように修正すれば実現できますでしょうか?
Ruby
1 <div class="file-field"> 2 <i class="fa fa-camera"></i> 3 <%= f.label :images %> 4 <p>3つまで</p> 5 <%= f.file_field :images, multiple: true, id: :blog_images_1 %> 6 <%= f.file_field :images, multiple: true, id: :blog_images_2 %> 7 <%= f.file_field :images, multiple: true, id: :blog_images_3 %> 8 <img id="blog_image_prev_1" width=200 height=200 src="#" class="blog_images_hidden_1"> 9 <img id="blog_image_prev_2" width=200 height=200 src="#" class="blog_images_hidden_2"> 10 <img id="blog_image_prev_3" width=200 height=200 src="#" class="blog_images_hidden_3"> 11 </div>
jquery
1 //画像プレビュー 2 $('.blog_images_hidden_1').hide(); 3 $('#blog_images_1').on('change', function (e) { 4 var reader = new FileReader(); 5 $('.blog_images_hidden_1').fadeIn(); 6 reader.onload = function (e) { 7 $("#blog_image_prev_1").attr('src', e.target.result); 8 } 9 reader.readAsDataURL(e.target.files[0]); 10 }); 11 12 $('.blog_images_hidden_2').hide(); 13 $('#blog_images_2').on('change', function (e) { 14 var reader = new FileReader(); 15 $('.blog_images_hidden_2').fadeIn(); 16 reader.onload = function (e) { 17 $("#blog_image_prev_2").attr('src', e.target.result); 18 } 19 reader.readAsDataURL(e.target.files[1]); 20 }); 21 22 $('.blog_images_hidden_3').hide(); 23 $('#blog_images_3').on('change', function (e) { 24 var reader = new FileReader(); 25 $('.blog_images_hidden_3').fadeIn(); 26 reader.onload = function (e) { 27 $("#blog_image_prev_3").attr('src', e.target.result); 28 } 29 reader.readAsDataURL(e.target.files[2]); 30 });
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。