🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
jQuery

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

HTML

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

1回答

2314閲覧

セレクトボックスを選択した値にテキストエリアに反映したい

firefire123

総合スコア5

jQuery

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

HTML

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

1クリップ

投稿2019/11/18 10:56

編集2019/11/19 01:27

html

1<!DOCTYPE HTML> 2<html lang="ja"> 3 <head> 4 <meta charset="UTF-8"> 5 <title></title> 6 </head> 7 <body> 8 <form action=""> 9 <select name="" id=""> 10 <option value="">----</option> 11 <option value="1">サンプル1</option> 12 <option value="2">サンプル2</option> 13 <option value="3">サンプル3</option> 14 </select> 15 <textarea name="" id="" cols="30" rows="10"></textarea> 16 </form> 17 </body> 18</html>

jquery

1$(function () { 2 3// 切り替えたセリフテンプレートをテキストエリアに反映 4var SerifSelect = $('.p-SelectGroup'); 5 var textarea = $('body textarea'); 6SerifSelect.each(function (i, el) { 7 $(this).on('change', function () { 8 var selectedTemplate = $(this).find('option:selected').val(); 9 10 $(textarea[i]).val(selectedTemplate); 11 }); 12}) 13 14}); 15 16

いつもお世話になっております。
左のセレクトボックスを選択すると右のテキストエリアを反映することが実装できましたが
もっとやりたいこと
テンプレ1を選択

右のテキストエリア内にテンプレ1のテキストが反映されました
テンプレ1の横に”abcdef”を入力し続けました。

セレクトボックスにも一回テンプレ1を選択

テキストエリア内にテンプレ1に戻したいいいいいいい.

どなたかお分かりになるかた、ご教示いただけると助かります。

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

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

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

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

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

guest

回答1

0

セレクトボックスをchangeするごとにセレクトボックス自体を戻せばよいのでは?

javascript

1$(function () { 2 var template = [ 3 '', 'テンプレ1', 'テンプレ2', 'テンプレ3' 4 ]; 5 $('select').on('change', function () { 6 var i = $(this).val(); 7 $('textarea').val(template[i]); 8 $(this).val(""); 9 }) 10});

更新ボタン

javascript

1<script> 2$(function () { 3 var template = [ 4 '', 'テンプレ1', 'テンプレ2', 'テンプレ3' 5 ]; 6 $('select').on('change', function () { 7 var i = $(this).val(); 8 $('textarea').val(template[i]); 9 }); 10 $('#mod').on('click',function(){ 11 $('select').trigger('change'); 12 }); 13}); 14</script> 15<form action=""> 16<select name="" id=""> 17<option value="">----</option> 18<option value="1">サンプル1</option> 19<option value="2">サンプル2</option> 20<option value="3">サンプル3</option> 21</select> 22<input type="button" value="更新" id="mod"> 23<textarea name="" id="" cols="30" rows="10"></textarea> 24</form>

投稿2019/11/18 11:03

編集2019/11/19 02:38
yambejp

総合スコア116661

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

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

firefire123

2019/11/19 01:31

yambejp様、ご回答ありがとうございます。 確かに >セレクトボックスをchangeするごとにセレクトボックス自体を戻せばよいのでは? なんですが $(this).val(""); を書くことでセレクトボックスはいつも"----"なっているのであまりよろしくないです。 セレクトボックスで選択したoptionがそのoptionのvalueが表示したいのでなんがもっといい方法があるでしょうか? ちなみに、今Jqueryの書き方がちょっと変更しました。
yambejp

2019/11/19 01:49

ちょっと確認ですが 「テンプレ1を選択」後、textareaをイジってすでに「テンプレ1」が選択されている 状態のセレクトボックスを「一回テンプレ1を選択」するというのは すでに選択されている状態なのですから変更しないということですよね? 変更がなければchangeイベントは発火しませんが?
firefire123

2019/11/19 02:19

yambejp様、ご回答ありがとうございます。 >すでに選択されている状態なのですから変更しないということですよね? >変更がなければchangeイベントは発火しませんが? はい、yambejp様が仰る通りです。 が、望ましいのはセレクトボックスに選択した値はそのまま表示したいので良い方法があるんでしょうか? もしかして、 >すでに選択されている状態なのですから変更しないということですよね? こうしないと実現出来ないでしょうか?
yambejp

2019/11/19 02:29

セレクトボックスを変更しないのであればもう一個更新ボタンでもつくって ボタンをおすとセレクトボックスの指定値に変えればいいでしょう その場合UIに工夫が必要な気がしますが
firefire123

2019/11/19 02:40

yambejp様、 ご回答ありがとうございます。 >もう一個更新ボタンでもつくって これも解決方法の一つですね。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問