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

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

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

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

JavaScript

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

HTML

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

Q&A

解決済

2回答

876閲覧

選択した項目(複数)をテキストエリアに表示させる方法

abetak5150

総合スコア8

HTML5

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

JavaScript

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

HTML

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

0グッド

0クリップ

投稿2018/06/05 08:31

前提・実現したいこと

いくつかの項目をhtml上で任意に選択し、結果を並べてテキストエリアに表示させたいと思っています。
また、できればその内容をクリップボードにコピーさせるなどもしたいです。

例:

パンを選んでください:プレーン、ゴマ付き、ライ麦
チーズを選んでください:チェダー、アメリカンタイプ、エメンタール、なし
飲み物:あり、なし
自由欄:あいうえお

上記項目をそれぞれ何かしらの方法で選んだ結果…

ライ麦
チェダー
あり
あいうえお

となるようにしたいのです。
ご教授ください。

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

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

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

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

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

x_x

2018/06/05 08:39

試したコードはないのでしょうか?
guest

回答2

0

ベストアンサー

こんな感じにすればチェックボックスが変化した瞬間にテキストエリアに反映することもできます。
https://jsbin.com/sesiropaka/edit?html,js,output

html

1 <form action="" id="food-form"> 2 <p> 3 パンを選んでください: 4 <label> 5 <input type="radio" name="pan" value="プレーン">プレーン、</label> 6 <label> 7 <input type="radio" name="pan" value="ゴマ付き">ゴマ付き、</label> 8 <label> 9 <input type="radio" name="pan" value="ライ麦">ライ麦</label> 10 </p> 11 <p> 12 チーズを選んでください: 13 <label> 14 <input type="radio" name="tizu" value="チェダー">チェダー、</label> 15 <label> 16 <input type="radio" name="tizu" value="アメリカンタイプ">アメリカンタイプ、</label> 17 <label> 18 <input type="radio" name="tizu" value="エメンタール">エメンタール、</label> 19 <label> 20 <input type="radio" name="tizu" value="なし">なし</label> 21 </p> 22 <p> 23 飲み物: 24 <label> 25 <input type="radio" name="nomi" value="あり">あり、</label> 26 <label> 27 <input type="radio" name="nomi" value="なし">なし</label> 28 </p> 29 <p> 30 自由欄: 31 <input type="text" name="jiyu"> 32 </p> 33 </form> 34 <p> 35 <textarea id="output" rows="10"></textarea> 36 </p> 37 <p> 38 <input type="button" value="copy" id="copy"> 39 </p>

javascript

1/** @type {HTMLFormElement} */ 2var formElement = document.querySelector("#food-form"); 3 4formElement.addEventListener("change", function(e) { 5 var foods = [ 6 formElement["pan"].value || "", 7 formElement["tizu"].value || "", 8 formElement["nomi"].value || "", 9 formElement["jiyu"].value || "", 10 ]; 11 document.querySelector("#output").value = foods.join("\n"); 12}); 13document.querySelector("#copy").addEventListener("click", function (e) { 14 with (document.querySelector("#output")) { 15 selectionStart = 0; 16 selectionEnd = value.length; 17 focus(); 18 } 19 document.execCommand("copy"); 20 alert("クリップボードにコピーしました"); 21}); 22

投稿2018/06/05 09:55

編集2018/06/05 09:57
sagami1991

総合スコア216

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

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

abetak5150

2018/06/06 02:16

リンク先を確認させていただきました。 想定していた通りで素晴らしいです。 ただ、実際に実装してみると以下のエラーが表示されてうまく動作しませんでした。 「オブジェクトは querySelector プロパティまたはメソッドをサポートしていません。」 と表示されます。 原因及び対処法はお分かりになりますでしょうか。 エディタはez-HTML、ブラウザはchromeを使用しています。
sagami1991

2018/06/06 03:13

`document.querySelector`メソッドは古いブラウザでもだいたい対応してるはずです。(chromeなら1から、IEならIE8から) そして、「プロパティまたはメソッドをサポートしていません」というエラーはたしかIEの文言のはずです。 chromeでhtmlを開けば正しく実行されると思いますが。
sagami1991

2018/06/06 03:16

それか、JSの挿入タイミングの問題かもしれません。 yamabeJPさんの回答のように、`window.addEventListener('DOMContentLoaded', function(e){` で包むか、またはスクリプトタグをhtmlの最後らへん(</body>の直上)に定義すると治るかもしれません。
abetak5150

2018/06/06 05:07

ありがとうございます。 やはり、いろいろ試しましたが(html内に記載、外部に設置)エラーになってしまうようです。
Lhankor_Mhy

2018/06/06 06:42

横からすみません。 Chrome で「オブジェクトは querySelector プロパティまたはメソッドをサポートしていません。」というエラーメッセージは出なさそうな気がします。ググって見た感じ、IEのエラーメッセージのようなのですが、ご使用ブラウザは本当に Chrome でしょうか。 あるいは、IEtab のようなアドオンを使っていませんか?
abetak5150

2018/06/06 06:47

ありがとうございます。 「オブジェクトは querySelector プロパティまたはメソッドをサポートしていません。」 はエディタ(ez-html)で表示されます。 chromeでエラーは表示されませんが、動作していないようです。
sagami1991

2018/06/06 07:28

そのエディタ(ez-html)の内蔵ブラウザのバージョンがとても古いことが原因と思われます。 chromeで動作しないのは他の原因であり、chrome上で右クリックし、「検証」を押すことでエラーログが見れるかと思います。 そしておそらく原因はjsの実行順序の関係だと思ってます。
abetak5150

2018/06/06 07:55

大変お騒がせしました。 記載の位置を変更したら動作しました。 本当にありがとうございました。
guest

0

こんな感じです

javascript

1window.addEventListener('DOMContentLoaded', function(e){ 2 document.querySelector('#check').addEventListener('click',function(e){ 3 var pan=(document.querySelector('[name=pan]:checked')||{value:""}).value; 4 var tizu=(document.querySelector('[name=tizu]:checked')||{value:""}).value; 5 var nomi=(document.querySelector('[name=nomi]:checked')||{value:""}).value; 6 var jiyu=document.querySelector('[name=jiyu]').value; 7 document.querySelector('#output').value=pan+"\n"+tizu+"\n"+nomi+"\n"+jiyu; 8 }); 9 document.querySelector('#copy').addEventListener('click',function(e){ 10 with(document.querySelector('#output')){ 11 selectionStart=0; 12 selectionEnd=value.length; 13 focus(); 14 } 15 document.execCommand('copy'); 16 }); 17});

HTML

1<p> 2パンを選んでください: 3<label><input type="radio" name="pan" value="プレーン">プレーン、</label> 4<label><input type="radio" name="pan" value="ゴマ付き">ゴマ付き、</label> 5<label><input type="radio" name="pan" value="ライ麦">ライ麦</label> 6</p> 7<p> 8チーズを選んでください: 9<label><input type="radio" name="tizu" value="チェダー">チェダー、</label> 10<label><input type="radio" name="tizu" value="アメリカンタイプ">アメリカンタイプ、</label> 11<label><input type="radio" name="tizu" value="エメンタール">エメンタール、</label> 12<label><input type="radio" name="tizu" value="なし">なし</label> 13</p> 14<p> 15飲み物: 16<label><input type="radio" name="nomi" value="あり">あり、</label> 17<label><input type="radio" name="nomi" value="なし">なし</label> 18</p> 19<p> 20自由欄:<input type="text" name="jiyu"> 21</p> 22<p> 23<input type="button" value="check" id="check"> 24</p> 25<p> 26<textarea id="output" rows="10"> 27</textarea> 28</p> 29<p> 30<input type="button" value="copy" id="copy"> 31</p> 32

投稿2018/06/05 08:56

編集2018/06/05 09:04
yambejp

総合スコア114968

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問