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

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

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

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

Q&A

解決済

1回答

3168閲覧

テキストエリアなどの複数のフィールドに記入された値を保存したい

suisuin

総合スコア17

JavaScript

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

0グッド

0クリップ

投稿2017/02/10 03:46

下記コードは、追加ボタンを押すと input と 削除ボタンが追加され inputに入力するとlocalStorageに自動で保存されます。

これをinputではなくtextareaで実現できないでしょうか。

javascriptの知識がありません。見よう見まねで編集してみたのですが時間ばかりが過ぎてしましました。どうかご教授お願いいたします。

<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">追加</button> <button id="reset">リセット</button> <ul id="foo"></ul> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.js"></script> <input id="new" type="button" value="new"> <input id="new1" type="button" value="new1"> <input id="del" type="button" value="選択のテキストエリアを削除"> <input id="clear-outline" type="button" value="全て削除" onclick="location.reload();"> <table> <ul id="jquery-ui-sortable" > </ul> </table> <script> var initData = []; var listString = ""; function initialize(){ $.each(initData, function(key, value) { $("#foo").prepend('<li><input type="text"><button class="delete">削除</button></li>'); }); } if (localStorage.getItem("foo")) { $("#foo").html(localStorage.getItem("foo")); } else { initialize(); } $("#add").click(function() { $("#foo").prepend('<li><input type="text"><button class="delete">削除</button></li>'); localStorage.setItem("foo", $("#foo").html()); }); $("#foo").on("keyup", ":input", function(){ $.each($("input"), function(key, input){ $(input).attr("value", $("<div/>").text(input.value).html()); }); 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()); }); <script>

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

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

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

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

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

guest

回答1

0

ベストアンサー

やってることはinputとかわりありませんが。

html

<textarea id="hoge"></textarea>

js

$("#hoge").on("keyup",function(){ localStorage.setItem("hoge", $("#hoge").val()); })

@追記
こうだとどうでしょう。

/* function initialize(){ $.each(initData, function(key, value) { $("#foo").prepend('<li><input type="text"><button class="delete">削除</button></li>'); }); } $("#add").click(function() { $("#foo").prepend('<li><input type="text"><button class="delete">削除</button></li>'); localStorage.setItem("foo", $("#foo").html()); }); $("#foo").on("keyup", ":input", function(){ $.each($("input"), function(key, input){ $(input).attr("value", $("<div/>").text(input.value).html()); }); localStorage.setItem("foo", $("#foo").html()); }); */ function initialize(){ $.each(initData, function(key, value) { $("#foo").prepend('<li><textarea></textarea><button class="delete">削除</button></li>'); }); } $("#add").click(function() { $("#foo").prepend('<li><textarea></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()); });

3つほど関数を修正
valueじゃなくてDOMそのものをstoreしてたんですね。。。

投稿2017/02/10 04:09

編集2017/02/10 05:45
Neko_doshi

総合スコア214

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

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

suisuin

2017/02/10 04:30

早速のお返事ありがとうございます。 試してみたのですが、textareaに入力した内容が自動保存されませんでした。 回答の間に下記を挟んで編集してみたりしたのですが保存が確認できませんでした。 $.each($("input"), function(key, input){ $(input).attr("value", $("<div/>").text(input.value).html()); });
suisuin

2017/02/10 05:48

できました!ありがとうございます。 ネットで調べながら日数を費やし、基本が理解できていないことで実現できずかなり参ってました。 心よりお礼申し上げます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問