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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

Q&A

解決済

1回答

927閲覧

3つのセレクトボックスで選んだValueを1つのテキストに表示させたい。

Hiyoko_mochi

総合スコア30

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

0グッド

0クリップ

投稿2020/07/13 16:38

編集2020/07/13 17:22

Javascript勉強中です。

Javascriptを用いて、3つのセレクトボックスで選んだValueを1つのテキストに表示させたいと思い
例えば

<form method="get" action="hoge"> <select name="question1"> <option value="" selected disabled>好きなお肉は?</option> <option value="牛肉">牛肉</option> <option value="豚肉">豚肉</option> <option value="鶏肉">鶏肉</option> </select> <select name="question2"> <option value="" selected disabled>好きな食べ方は?</option> <option value="焼き肉">焼き肉</option> <option value="しゃぶしゃぶ">しゃぶしゃぶ</option> </select> <select name="question3"> <option value="" selected disabled>好きなお酒は?</option> <option value="ビール">ビール</option> <option value="焼酎">焼酎</option> <option value="ワイン">ワイン</option> </select> <input type="text" name="answer" > <input type="submit" value="送信"> </form>

こういったフォームがあったとして、それぞれ牛肉、焼き肉、焼酎と選んだ際は
テキスト部分には 『牛肉+焼き肉+焼酎』 と半角で+がついた状態で表示させたいのですが、いくら調べても、1つのValueしか表示させる事しかできず、苦戦中です。

イメージ説明
※↑こういうふうになるのが目標です・・。

お手数ではございますが、
解決方法をご教授頂ければ幸いです。

よろしくお願いします。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
追記です。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
最初の方は、このような形で行っていましたが、
いざここからあと2つ連動するのを書き足すとすれば、どうすれば良いのか・・・から始まった次第です。

<script> function faq1(obj){ var f=obj.form; var v=obj.options[obj.selectedIndex].value; var c=f.elements["answer"]; c.value=v; obj.selectedIndex=0; } </script> <form method="get" class="searchform" action=""> <select name="question1" onchange="faq1(this)"> <option value="" selected>好きなお肉は?</option> <option value="牛肉">牛肉</option> <option value="豚肉">豚肉</option> <option value="鶏肉">鶏肉</option> </select> <select name="question2" onchange="faq2(this)"> <option value="" selected disabled>好きな食べ方は?</option> <option value="焼き肉">焼き肉</option> <option value="しゃぶしゃぶ">しゃぶしゃぶ</option> </select> <select name="question3" onchange="faq3(this)"> <option value="" selected disabled>好きなお酒は?</option> <option value="ビール">ビール</option> <option value="焼酎">焼酎</option> <option value="ワイン">ワイン</option> </select> <input type="text" name="answer" > <input type="submit" value="送信"> </form>

faq1(obj)に習い、faq2とfaq3の分を追加していくのは、把握しているのですが、
肝心の追加の方法で詰まっている次第です。

お手数ではございますが、
解決方法をご教授頂ければ幸いです。

よろしくお願いします。

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

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

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

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

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

kei344

2020/07/13 16:58

ご自身で試されたコードを質問文に追記し、「何」が「どのように」わからないのか、コードのどの部分で詰まっているのかなどを具体的に追記されたほうが回答が望めると思います。
Hiyoko_mochi

2020/07/13 17:23

お世話になります。 頂いたご質問に基づいて、当初行っていた内容を追記させて頂いたのですが、 ご覧の通り割と最初に段階で躓いている形です・・・。 理屈はわかるのですが、方法が分からないと言った状態です。
guest

回答1

0

ベストアンサー

こんにちは。一例として、以下のような感じになるかなと思います。

html

1<script> 2document.addEventListener('DOMContentLoaded', function() { 3 4 const selects = [...document.querySelectorAll('select')]; 5 6 const updateAnswer = () => { 7 const text = selects.map(e => e.value).filter(s => s).join('+'); 8 document.forms[0].answer.value = text; 9 }; 10 11 selects.forEach(select => { 12 select.addEventListener('change', updateAnswer); 13 }); 14 15}); 16</script>

投稿2020/07/13 17:34

jun68ykt

総合スコア9058

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

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

Hiyoko_mochi

2020/07/13 18:31

お世話になります。 ご教授ありがとうございます。 頂いた内容でやりたいことができました! こちらを元にどうしてこれでできるのか?など、もっと勉強していきたいと思います。 ありがとうございました。
jun68ykt

2020/07/13 18:56

どういたしまして???? 参考になれば幸いです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問