遠い叫びスマートフォン用の表示で見る遠い叫び2018-03-06ブラウザの「戻る」で戻ったときに選択しているoption要素を戻す方法JavaScriptselect要素のonchangeで即ページ遷移するような実装をすることがたまにある。ボタン押して普通にsubmitさせろよとも思うけど、手順一つ省略したい気持ちもまあわかる。});まあ、こんな感じに。問題はこの後にブラウザの「戻る」で戻った場合で、ほとんどのブラウザの実装では、キャッシュがある限り、フォームコントロールはそのまま戻ることになる。普通ならそれで問題はないのだが、select要素でonchangeでやってる場合ちょっとやっかいなことになる。いうと、select要素をクリックして、メニューを開いた後、選択を変えずにメニューを閉じた場合、onchangeは発火しないから。このような使い方をする場合、HTML上のselected属性の通りに選択されていて欲しい。それをどう実現するか?結論から言うと、window.onloadと、Firefoxなど向けにwindow.onshowpageに、HTML上のselectedをじっさいの選択に合わせる関数を登録すればいい。jQueryでやるならこんな感じ。init);});注意点がいくつかあって、:selected擬似セレクタではなく、[selected=selected]を使う。selected属性がどのoption要素にもない場合に、ブラウザっぽく最初のoption要素をselectedにするようにする。attr()あたりではなくprop()を使う。(1)はてなブログをはじめよう!xxmagaiさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。