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

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

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

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

Q&A

解決済

1回答

2636閲覧

複数のテキストエリアの内容を特定のテキストエリアに出力させたい

suisuin

総合スコア17

JavaScript

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

0グッド

0クリップ

投稿2017/02/11 08:31

下記コードにてテキストエリアを繰り返し追加します。
追加された各テキストエリアに入力した内容をボタンをクリックして特定のテキストエリアにまとめて取得させるにはどうすれば良いでしょうか。

◇条件があります。
ポイント1
・繰り返し追加されるのはテキストエリアだけでなく<button>など他の要素も含まれます。

ポイント2
繰り返し追加したテキストエリアは、リストタグ上で順番を入れ替えを可能とする予定です(今回質問には含みません)。そのため順番を入れ替えたらそのまま特定のテキストエリアに反映させたい。

◇ネットで解決しそうな手段として、クラスの取得からテキストエリアへの反映を試しましたがだめでした。
「var strInsert = document.getElementsByClassName("taF2");」

javascriputは初心者です。上記の手段にはこだわってません。どうかご教授よろしくお願いいたします。

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.js"></script> <button id="add" class="butt">追加</button> <button id="reset">リセット</button> <table> <ul id="jquery-ui-sortable" class="foo"></ul> </table> <textarea id="output1" cols="40" rows="5" name="myTEXT" class="myTEXT1"></textarea><br> <button onclick="insertString()">test dataを挿入</button> //////////////以下テキストエリア追加&自動保存 var initData = []; var listString = ""; function initialize(){ $.each(initData, function(key, value) { $(".foo").prepend('<li class="ui-state-default"><textarea id="taF2"></textarea><button class="delete">削除</button></li>'); }); } if (localStorage.getItem("foo")) { $(".foo").html(localStorage.getItem("foo")); } else { initialize(); } $("#add").click(function() { $(".foo").prepend('<li class="ui-state-default"><textarea id="taF2"></textarea><button class="delete">削除</button></li>'); localStorage.setItem("foo", $(".foo").html()); }); $(".foo").on("keyup", ":input", function(){ $.each($("textarea"), function(key, input){ $(input).text($(input).val()); }); localStorage.setItem("foo", $(".foo").html()); }); $(".foo").on("click", ".delete", function() { $(this).parent().remove(); localStorage.setItem("foo", $(".foo").html()); }); $("#reset").click(function(){ $(".foo").empty(); initialize(); localStorage.setItem("foo", $(".foo").html()); }); ////////////////////以下、特定のtextareaにまとめて移動させたく挑戦中した結果、追加された1つのテキストエリアしか反映しなかった function insertString() { //挿入する文字列 var strInsert = document.getElementById("taF2").value; //現在のテキストエリアの文字列 var strOriginal = document.getElementById('output1').value; //現在のカーソル位置 var posCursole = document.getElementById('output1').selectionStart; //カーソル位置より左の文字列 var leftPart = strOriginal.substr(0, posCursole); //カーソル位置より右の文字列 var rightPart = strOriginal.substr(posCursole, strOriginal.length); //文字列を結合して、テキストエリアに出力 document.getElementById('output1').value = leftPart + strInsert + rightPart; } //◇ここに行き詰まりました。 //「var strInsert = document.getElementById("taF2").value;」を使って取得を試みたが、追加された1つのテキストエリアの内容しか反映されなかった //「var strInsert = document.getElementsByClassName("taF2");」それならば同一要素の取得としてクラスにを試みたがだめでした。

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

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

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

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

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

guest

回答1

0

自己解決

function fCopy(){
var taElm=document.forms["frmF"].elements["taF"];
var taElmCopy=document.frmF.elements["taFCopy"];
taElmCopy.value=taElm.value;
}

質問内容が複雑していること、別の作り方を模索したいことを含み取り急ぎ上記にて解決とします。

投稿2017/02/11 11:57

suisuin

総合スコア17

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問