質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

0回答

530閲覧

[JavaScript]登録した画像の削除

pqtrick

総合スコア5

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/04/09 23:06

はじめに

現在フリマサイトを作成しています。商品を出品した後の編集画面にて、画像の変更機能を実装したいです。
そこでjsを用いて画像を削除し、dummy画像を表示し再度画像を登録できるようにしたいです。

現状

このように出品時に登録してあれば、その画像を表示、
なければダミー画像を表示させています
ダミー枠内をタップするとfileが開けます(display:none;適用)
view

コード

haml

1 .upload__box__images 2 -# 1枚目 3 .upload__box__image 4 %label{for: "product_images_attributes_0_image"} 5 - if @product.images.first.present? 6 = image_tag @product.images.first.image.url, alt: "Item upload" ,height: "100%", width: "100%", class: "preview-image" 7 - else 8 = image_tag "pict/item_upload_dummy.png", alt: "Item upload dummy", size: "210x195" 9 .upload__box__image-picker 10 = f.file_field :image, multiple: true, type: "file", accept: "image/*", name: "product[images_attributes][0][id]", id: "product_images_attributes_0_image", style: "display: none;" 11 .upload__box__image-delete 12 %span 削除 13 -# 2枚目 14 .upload__box__image 15 %label{for: "product_images_attributes_1_image"} 16 - if @product.images.second.present? 17 = image_tag @product.images.second.image.url, alt: "Item upload" ,height: "100%", width: "100%", class: "preview-image" 18 - else 19 = image_tag "pict/item_upload_dummy.png", alt: "Item upload dummy", size: "210x195" 20 .upload__box__image-picker 21 = f.file_field :image, multiple: true, type: "file", accept: "image/*", name: "product[images_attributes][1][id]", id: "product_images_attributes_1_image", style: "display: none;" 22 .upload__box__image-delete 23 %span 削除 24 -# 3枚目 25 .upload__box__image 26 %label{for: "product_images_attributes_2_image"} 27 - if @product.images.third.present? 28 = image_tag @product.images.third.image.url, alt: "Item upload" ,height: "100%", width: "100%" 29 - else 30 = image_tag "pict/item_upload_dummy.png", alt: "Item upload dummy", size: "210x195" 31 .upload__box__image-picker 32 = f.file_field :image, multiple: true, type: "file", accept: "image/*", name: "product[images_attributes][2][id]", id: "product_images_attributes_2_image", style: "display: none;" 33 .upload__box__image-delete 34 %span 削除

考察

削除ボタンを押した際に該当画像のidを取得し、フォームの中身を削除する
場合わけのelseにてダミー表示、再度画像の登録及びプレビューをする
これらの記述が必要である

最後に

メルカリのようなドロップ式の画像アップロードではなく、3枚と決められていて、
タップで登録するという、珍しい?型を採用しており、参考にできるものが見つからず苦戦しております

ご教授いただけると幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

no1knows

2020/04/09 23:56

JavaScriptのどこでうまくいかないのか、ソースもふくめて追記いただくと回答がつきやすいかと思います。 https://teratail.com/help/avoid-asking また現状、画像の削除、画像の登録はできている。それをJavaScriptで行いたいということでしょうか? 文章を読んでいる限りだとよくわからなかったので、何ができていて、何ができないのかなどの整理も必要かと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問