
入力フォームに入力された値をsubmitを押したら、次の確認画面から前のページに戻った時も、入力されているデータを保持するコード書いています。
以下は調べたコードですが、コードの意味は大まかに把握できていますが、sessionStorageにデータを保存するまでの流れを正確に理解できていません。
<script>タグ内に▼三角の記号部分のコードはsesstionStorageにデータを保存するために、この場合▼の部分のコードは必要なのでしょうか?
また、♦の部分を指定するには、まず最初に、■の部分のコードを書かなければいけないという解釈であっていますでしょうか?
※PHPはを使った方がよいですが、今は練習なので、使っていません。
---HTMLのコード---
<body>
<form action="form1.php" method="post" id="form">
名前:<input type="text" class="form1" name="name" id="name" value="" />
ふりがな:<input type="text" class="form1" name="furigana" id="furigana" value="" />
選択:
<select id="fruits" class="select1" name="fruits">
<option value="">果物を選択する</option>
<option value="">リンゴ</option>
</select>
<button id="submit" class="yohaku">
</button>
</form>
</body>
---javascriptのコード---
<script>
▼const key = 'date_key';
▼const form = document.querySelector('#form');
▼const name = document.querySelector('#name');
▼const furigana = document.querySelector('#furigana');
form.addEventListener('change', function() {
♦if (name.value != "") sessionStorage.setItem('name', name.value);
♦if (furigana.value != "") sessionStorage.setItem('furigana', furigana.value);
♦if (fruits.value != "") sessionStorage.setItem('fruits', fruits.value);
});
let val1 = sessionStorage.getItem('fruits');
if(val1!== null)fruits.value = val1;
■name.value = sessionStorage.getItem('name');
■furigana.value = sessionStorage.getItem('furigana');
</script>
No.1ベストアンサー
- 回答日時:
こんにちは
javascriptは基本的に Document 上で動作していますので、表示ページが遷移すると(異なるDocumentになるので)変数等に値を保持しておくことができません。
これに対して、値を保持しておける一時的な記憶スペース(=sessionStorage)に値を記録しておこうというのがご提示のスクリプトの仕組みです。
https://developer.mozilla.org/ja/docs/Web/API/Wi …
>sessionStorageにデータを保存するまでの流れを正確に理解できていません。
直接的には、
sessionStorage.setItem(key. value);
で値を記録し、
sessionStorage.getItem(key);
で読み出すという方法になっています。
>データを保存するために、この場合▼の部分のコードは必要なのでしょうか?
「保存」に関して言えば、直接は必要ありませんけれど、値を保存する前にフォームの値を読み取る必要があり、そのためにDOM要素を取得しているので、全体の処理としては必要です。
ただし、
>const key = 'date_key';
は、値を使用しておらず、あっても無くても変わりありませんので、ご提示の範囲においては不要と言えます。
>この場合▼の部分のコードは必要なのでしょうか?
上に書きましたように、ストレージに値を書き込む処理です。
(これが無ければ、書き込みません ⇒ 次に読出したくても読込むことができなくなります)
>まず最初に、■の部分のコードを書かなければいけないという解釈であっていますでしょうか?
ご提示のままの記述順序で動作していると思いますけれど・・・??
(ですので、最初に書かなければいけないということではない)
一方で、処理の流れとしては、ページを読み込んだ際に「ストレージをチェックして(値が保管されていれば)表示する」という処理を行う必要はありますけれど。
>流れを正確に理解できていません。
漠然とした理解では、まともに動作するスクリプトにはまずなりません。
きちんと理解できるようになさってください。
>入力されているデータを保持するコード書いています。
「書いている」のなら、理解しなくては書けないはずですけれど??
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・昔のあなたへのアドバイス
- ・字面がカッコいい英単語
- ・許せない心理テスト
- ・歩いた自慢大会
- ・「I love you」 をかっこよく翻訳してみてください
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・はじめての旅行はどこに行きましたか?
- ・準・究極の選択
- ・この人頭いいなと思ったエピソード
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ラジオボタンの値を関数へわた...
-
フォーム名に指定文字列が含ま...
-
テキスト内容の変化でイベント発生
-
複数のsubmitボタンで押された...
-
hiddenのvalueの値を変えたい
-
JAVASCRIPTで、ボタンを押した...
-
value内に変数を入れたい
-
Pythonで会員サイトの自動ログ...
-
インラインフレームを利用した...
-
INPUTタグ以外からイベントハン...
-
VBScript
-
ボタンでテキスト領域に文字列...
-
IDをvalueの値でなく、class名...
-
クリックごとに文字色が交互に...
-
度胸試しのJavaScript
-
javascript教えてください
-
テーブルの一部を入力フィール...
-
.NETを使用せずに、ASP・VBScri...
-
複数のボタンに対するActionと...
-
Jqueryでtdの要素を変更したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
value内に変数を入れたい
-
hiddenのvalueの値を変えたい
-
複数のsubmitボタンで押された...
-
setIntervalの間隔を途中で変更...
-
VB.NET DateTimeの型について
-
JavaScriptによる自動計算フォ...
-
javascriptでhiddenに二次元配...
-
name属性が同じフォームが複数...
-
フォームで入力した値を別のフ...
-
JAVASCRIPTで、ボタンを押した...
-
プルダウン選択時、既に入力済...
-
どのボタンがクリックされたの...
-
チェックボックスがundefinedと...
-
eval()を使わずに数値を取得し...
-
ラジオボタンと連動して文字列...
-
ループで連続したフォームの値...
-
クイズ作成:15個の問題から5個...
-
ラジオボタンを押して計算結果...
-
コピーすると改行コードがCRと...
-
自動的に連番生成したURLにリン...
おすすめ情報