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

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

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

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

HTML

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

Q&A

解決済

2回答

5309閲覧

location.reload後セレクトボックスのselectedの値を変更してもその部分が指定されない。

manabunbun

総合スコア39

jQuery

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

HTML

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

0グッド

0クリップ

投稿2020/04/17 03:16

アンケートシステムを作成しています。
location.reload();する前にsessionStorageで、現在選択しているセレクトボックスの値を取得。
その後location.reload()実行。
再度セレクトボックスへsessionStorageにセットした値をセット。

jQuery

1 //[#modal-overlay]、または[#modal-close]をクリックしたら黒い部分がフェードアウト 2 $("#modal-overlay,#modal-close").unbind().click(function(){ 3 //部署の取得 sessionStorage使用 4 var busyo=$("select#selectkasyo").val(); 5 sessionStorage.setItem('kasyo',busyo); 6 7 //フェードアウト 8 modalfadeout(_no); 9 //ページのリロード 10 location.reload(); 11 var getbusyo=sessionStorage.getItem('kasyo'); 12 console.log(getbusyo); 13 $("select#selectkasyo").val(getbusyo); 14 });

sessionStorageを使用しましたが、指定したセレクトボックスがうまく選択できません。
console.log(getbusyo);の部分ではセレクトボックスの値が取得できています。
やり方がよくないのか、考え方がこれでよいのかよくわかりませんので
よろしくお願いします。

以下にセレクト部分のhtmlを表示させておきます。
opera ver.67
IE ver11 です。

html

1**セレクト部分** 2<select name="kasyo" id="selectkasyo"> 3<option value="" selected></option> 4<option value="0">----</option> 5<option value="A1">A1</option> 6<option value="A2">A2</option> 7<option value="B1">B1</option> 8<option value="B2">B2</option> 9<option value="B3">B3</option> 10</select>

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

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

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

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

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

guest

回答2

0

ベストアンサー

同じ処理内でリロードがあるからと思います。画面遷移が起きてますので、例えそれ以下の処理が動いていても画面ロードされて関係なくなります。

別途画面ロード時の処理を設け、(document.readyやwindow.onload)、そこにgetItem以下をそのまま移項すると良いです。

投稿2020/04/17 03:24

m.ts10806

総合スコア80850

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

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

manabunbun

2020/04/17 03:51

ありがとうございました。 $(window).on('load',function(){ var getbusyo=sessionStorage.getItem('kasyo'); $("select#selectkasyo").val(getbusyo); }) でうまくできました。$(function){}と$(window).on('load',function(){}とでは実行されるタイミングがちがうということが分かりました。ありがとうございました。
m.ts10806

2020/04/17 04:00

いえ、今回の問題はそこじゃないですよ。$(function){}に直に書いてもいけるはずです。 確かにタイミングは違いますが、今回は「リロード処理と一緒に書いてること」が問題です。
guest

0

location.reload();を実行しているページでセレクト値を書き換えても、その後リロードが起こるだけです。(別ページに飛ぶのと同じで次のページを書き換えることはできない)
ロード時に保存された値があればセレクト値を書き換えるようにしてください。

投稿2020/04/17 03:20

kei344

総合スコア69407

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

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

manabunbun

2020/04/17 03:52

ありがとうございました。$(window).on('load',function(){}内に処理を書いたらうまく実行できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問